Commit Graph
1257 Commits
Author SHA1 Message Date
Andrew Johnson d59a0ac06f Merged 3.14 changes from 2011-08-23 to 2011-09-15 2011-09-20 13:07:52 -05:00
Andrew Johnson 75aa05d30f libCom: Remove extern "C" { #include <...> } from osdSock.h
Our joint conclusion was that wrapping system includes with
extern "C" used to be necessary on some OS builds when C++
was much less common, but is now wrong.
2011-09-09 17:14:35 -05:00
Andrew Johnson 3cfa011760 libCom: Clean up warning from Darwin. 2011-09-09 17:10:32 -05:00
Andrew Johnson 26757f5317 libCom/osi: Clean up compiler warnings on vxWorks 2011-09-07 10:59:11 -05:00
Jeff Hill 57953e6e24 fixed sunos compiler issue (I dont have sunos 5.10 here) 2011-09-06 18:51:04 -06:00
Andrew Johnson 841978e8c8 Remove epicsAtomicLocked.{h,cpp} from Makefile too. 2011-09-06 10:33:56 -05:00
Jeff Hill fd10e77518 o hopefully fixed missing functions with sunos 5.10 or higher
o removed unused trash files which somehow reappeared after rebase
2011-09-02 18:18:46 -06:00
Jeff HillandAndrew Johnson 1ff2408ba4 o hoping that atomic_inc_ptr_nv and atomic_dec_ptr_nv interface definitions will be available if we use sys/atomic.h instead of atomic.h
o fixed issue introduced by last revision where definition of lock functions and lock key were not present if its sunos 5.10 or greater
(its time consuming to develop code if you can only run the (SUNPRO) compiler indirectly)
2011-09-02 09:59:03 -06:00
Jeff HillandAndrew Johnson c76b800f2a must ... not .. use the improved c++ casts in c code 2011-09-01 11:43:14 -06:00
Jeff HillandAndrew Johnson f5c374c556 o improved comments
o dont include epicsAtomicOSD.h from any of the implementations of epicsAtomicCD.h unless the compiler has support for an inline keyword
o removed superfluous ifdef on EPICS_ATOMIC_INLINE all versions of epicsAtomicDefault.h and epicsAtomicOSD.h
o In the implementations of epicsAtomicOSD.cpp if EPICS_ATOMIC_INLINE isnt defined define it to be empty and then include epicsAtomicOSD.h
o fixing some compile time issues for solaris version of epicsAtomicOSD.h (so that Janet can run another compile on that os)
2011-09-01 11:25:53 -06:00
Jeff HillandAndrew Johnson 3bae2a470f fixed names on redefinition protection macros for vxWorks 2011-08-30 14:46:24 -06:00
Jeff HillandAndrew Johnson 5f096a8b80 fixed epics atomic read memory barrier name - old versions of vxWorks 2011-08-30 14:04:36 -06:00
Till StraumannandAndrew Johnson f203e9a48b libCom: Fix OS priority mapping on Posix
Fixes lp:835138
2011-08-30 14:47:31 -05:00
Jeff HillandAndrew Johnson 798f1f2ace fixed word missing from vxWorks specific read and write memory barrier functions 2011-08-30 13:34:17 -06:00
Jeff HillandAndrew Johnson ad669d6ece fixed wrong return type old vxWorks epicsAtomicUnlock 2011-08-30 10:29:56 -06:00
Jeff HillandAndrew Johnson 734ea0789a fixed vxWorks jumbled ifdef 2011-08-30 09:01:08 -06:00
unknownandAndrew Johnson f0afcef02e o changed to more generic implementation to reduce the code size
o changed name, OSD_ATOMIC_INLINE to EPICS_ATOMIC_INLINE
o changed supported data types, unsigned removed and int added (per reveiw at codeathon)
o added add/subtract functions (per reveiw at codeathon)
o now presuming that __sync_synchronize available all gcc 4  mingw does not provide windows mem barrier)
o consolodated on one implemention for Microsoft invarient of cmplr intrinisic or win32 by using macros to config a shared header file
o improved doc in epicsAtomic.h
o added overloaded c++ interface in namespace epics :: atomic to epicsAtomic.h
o added epicsAtomicReadMemoryBarrier and epicsAtomicWriteMemoryBarrier interface to epicsAtomic.h
o changed the implementation so that each of the functions can be individually specified for a particular compiler, os, or in the generic implementation (this is accomplished with macros)
o modified the functional and performance test so that they are based on templates so we can easily support new data types
o modified performance tests to repeat function calls and measure performance using a template
2011-08-29 19:02:41 -06:00
Till StraumannandAndrew Johnson 2b65025d93 RTEMS: Time registration when dynamically loading
The old test for discriminating between statically and dynamically
linked applications (os/RTEMS/osdTime.cpp:staticTimeRegister()) is
wrong, it never detects a dynamically loaded app.

fixes lp:831648
-------------- This line and the following will be ignored
--------------

modified:
  src/libCom/osi/os/RTEMS/osdTime.cpp
2011-08-23 13:20:00 -05:00
Jeff HillandAndrew Johnson e8154577db fixed issues in posix and vxWorks specific epicsAtomic found during testing 2011-08-19 14:17:59 -06:00
Jeff HillandAndrew Johnson 8a8ba04405 o merged in changes from the "compiler specific build" branch
o changed implementation of default mutex locked version to be POSIX specific 
so we can use a static pthread mutex which is more efficent
2011-08-19 13:48:03 -06:00
Jeff HillandAndrew Johnson 4bea8cbb0a committed merge 2011-08-16 18:34:36 -06:00
Jeff HillandAndrew Johnson e929857ac8 fixed missing missing locked func and broken func proto 2011-08-15 17:59:43 -06:00
Jeff HillandAndrew Johnson bd1b1479f4 o no longer need to define OSD_ATOMIC_GCC
o removed function
epicsAtomicTestAndSetUIntT
o added new functions
epicsAtomicSetPtrT
epicsAtomicGetPtrT
epicsAtomicCmpAndSwapUIntT
epicsAtomicCmpAndSwapPtrT
o changed msvc intrinsics to define memory fence
o fixed mutex synchronized version so that its slow, but correct if the c++ compiler doesnt synchronized local scope static initialization
o changed most of the set/get methods to use memory barriers instead of some other primitive
o added additional tests
2011-08-15 17:00:01 -06:00
Jeff HillandAndrew Johnson c872c44668 added epicsAtomicGetUIntT for completeness 2011-08-12 10:06:09 -06:00
Jeff HillandAndrew Johnson 275df0471d fixed test for earlier gcc supporting intel instrinsic atomic operations 2011-08-10 13:15:51 -06:00
Jeff HillandAndrew Johnson 6f7ac559be fixed solaris 64 compiler error (I dont have that version of solaris here) 2011-08-09 12:26:40 -06:00
Jeff HillandAndrew Johnson 092e161485 o fixed compile errors in epicsAtomicOSD.h (I didnt have the proper version of solaris to test)
o fixed darwin compile errors (I dont have access to darwin)
2011-08-08 17:54:43 -06:00
Jeff HillandAndrew Johnson 76b8265dfd o moved -march=i586 from CONFIG.arch.arch to CONFIG.Common.arch {cygwin-x86,win32-x86-cygwin,win32-x86-mingw
o removed -march=i586 from CONFIG.linux-x86.linux-x86
o fixed compile errors in epicsAtomicOSD.h (I didnt have the proper version of solaris for initial testing here)
2011-08-08 17:33:19 -06:00
Jeff HillandAndrew Johnson 33c40b23a1 fixed epicsAtomicTestAndSetUIntT for solaris 2011-08-05 17:32:06 -06:00
Jeff HillandAndrew Johnson fc4a4d9024 o fixed include guard to match file names
o fixed legacy vxWorks support
2011-08-05 16:23:50 -06:00
Jeff HillandAndrew Johnson e1e3ec6c22 enable gcc atomic intrinsics on certain older gcc that does not advertize its atomics when targeting intel 2011-08-05 10:50:25 -06:00
Jeff HillandAndrew Johnson cedcddd0e8 track name changes 2011-08-05 09:51:05 -06:00
Jeff HillandAndrew Johnson 747a59fd7f o added epicsAtomic implementation including compiler and os specific files
o added functionality and performance testing
2011-08-05 09:13:38 -06:00
Jeff HillandAndrew Johnson fa55316272 o added CMPL_CLASD definition to CONFIG.gnuCommon, CONFIG.solarisCommon.solarisCommon, configure/os/CONFIG.win32-x86.win32-x86
o added CMPLR_SRC_DIRS to ALL_SRC_DIRS, and added compiler/$CMPLR_CLASS) to INSTALL_INCLUDES in CONFIG_COMMON
o added additional compiler specific rule deciding where things are installed to  in CONFIG_COMMON
o added compiler specific include install to RULES_BUILD
o changed configure/os/CONFIG.linux-x86.linux-x86 to specify minimum arch is 586 (pentium circa 1995)
o changed configure/os/CONFIG.win32-x86-cygwin.win32-x86-cygwin to specify minimum arch is 586 (pentium circa 1995)
o added epicsAtoimic facility to libCom/Makefile
o added testing and performance measurement to  libCom/test/Makefile
2011-08-05 08:57:15 -06:00
Andrew Johnson dbaa045afc Merged compiler-specific include files branch. 2011-09-01 11:42:37 -05:00
Andrew Johnson 2def6a3d80 Move default macros to compilerDependencies.h
Added check in gcc-specific header to error if __clang__ defined
Some versions of clang don't support __has_attribute()
2011-08-31 17:35:18 -05:00
Andrew Johnson 712bb052ef Merged the epicsEvent-api branch.
Modified epicsEventTest.cpp to use the new names.
2011-08-23 18:19:55 -05:00
Jeff Hill a05348d63e merged andrews merge to R3.15 2011-08-19 14:43:35 -06:00
Jeff Hill be1c21fc51 o changed the build system so that we can implement functionality which is compiler specific in a separate file for each compiler. This will avoid accumulating MxN ifdef's where M is the number of OS and N is the number of comilers (worst case). This will make it easier to find code that is compiler specific centralizing all of it under libCom/osi/compiler. That should make it mush easier to port EPICS to run on a new compiler.
o refactored compilerDependencies.h into code that is compiler specific (one libCom/osi/compiler/xxx/compilerDependent.h for each comiler) and code that isnt  libCom/osi/compilerDependencies.h (this is a new location and is no longer in libCom/misc).
2011-08-17 13:57:46 -06:00
Andrew Johnson e71785edf6 libCom/devLib: Make unsolicitedHandlerEPICS() visible
This symbol is required to be visible on non-PowerPC (68k) vxWorks
systems for devInterruptInUseVME() to recognize interrupt vectors
that the devDisconnectInterruptVME() routine has marked as not used.
2011-07-21 16:10:50 -05:00
Andrew Johnson 8dea585dc2 FreeBSD update to osdSock.h from Gerrit Kuehn. 2011-04-05 12:32:39 -05:00
Jeff Hill 0dab032751 avoid c++ static initialization order issues 2011-04-05 09:23:22 -06:00
Jeff Hill 4b780b1011 avoid c++ static initialization order issues 2011-04-04 17:50:49 -06:00
Jeff Hill fc3e876d57 avoid c++ static initialization order issues 2011-04-04 17:29:51 -06:00
Michael DavidsaverandAndrew Johnson f7fc564556 Fold antelope/flex and asHost into libCom
Build lexer and parser from libCom/Makefile.
Since libCom now includes asLib.c and asLib_lex.c we must build
antelope and flex without linking them to Com.  This works because
they only need epicsTempFile anyway.  However make doesn't like a
subdirectory with the same name as a target object, so the antelope
source directory is now called yacc.  The two main.c files were also
renamed to avoid other build problems.

Merge asHost into Com and remove mentions in CONFIG_BASE

Lots of noise since SRCS must be renamed to Com_SRCS
2011-02-25 15:39:44 -06:00
Jeff HillandAndrew Johnson fd72cb63bf libCom/WIN32: Merged Jeff's fix for bug 717252
o Fixed race condition where win32 thread parm was not pushed onto the
  list before the thread was started, and so if the thread exits very
  quickly it can try to remove a non-existent thread parameter from
  the list.
o This impacts only win32.
2011-02-11 16:33:58 -06:00
Andrew Johnson c698853394 libCom: Merged Jeff's epicsThread change.
When finished waiting for a thread to exit, signal the event in case
other threads are waiting also.
2011-02-11 15:04:04 -06:00
Andrew Johnson 22f1e8201f libCom/WIN32: Merged Jeff's WIN32/osdThread changes
Fixed spelling and other cosmetic changes.
2011-02-11 15:01:39 -06:00
Andrew Johnson b38127450e libCom/WIN32: Merged Jeff's osdTime fix
Fixed last time compare in PLL drift factor update loop.
2011-02-11 14:59:35 -06:00
Andrew Johnson 072b449bb1 libCom: Fixed epicsEvent issues on Win32 and cygwin.
* Removed all epicsShareAPI decorations
* Return value from Win32 epicsEventTrigger() inverted
* Return OK from posix epicsEventTrigger() omitted.
2011-02-08 14:17:47 -06:00