Commit Graph
3051 Commits
Author SHA1 Message Date
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
Michael DavidsaverandAndrew Johnson 2714ff703b Fix source reorg issues from Windows
* fix libCom exports for things which used to be built differently
* logserver needs winsock
* errlog prefix: fix warnings on win32
* fix dll imports in ioc/db
2011-08-30 18:09:11 -05:00
Andrew Johnson c5212ea23c libCom: epicsVersion.h changes
Make version numbers easier to compare.
2011-08-30 17:50:53 -05: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 43fa23bba6 fixed vxWorks name for epicsAtomicTest 2011-08-30 10:49:52 -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
Michael DavidsaverandMichael Davidsaver 294e47db9c gpHashList avoid cantProceed
handle allocation failures in gphAdd()
2011-08-26 16:34:00 -07:00
Michael DavidsaverandMichael Davidsaver 9a1b6b995e macEnv avoid cantProceed 2011-08-26 16:33:59 -07:00
Michael DavidsaverandMichael Davidsaver 503f46ec8c posix osdMutex recursive type is not optional
epicsMutexId is expected to be recursive so
fail if this is not possible.
2011-08-26 16:33:58 -07:00
Michael DavidsaverandMichael Davidsaver e41bd3994e default osdMessageQueue avoid cantProceed 2011-08-26 16:33:58 -07:00
Michael DavidsaverandMichael Davidsaver 34fc8f8251 rtems osdMessageQueue.c 2011-08-26 16:33:57 -07:00
Michael DavidsaverandMichael Davidsaver 294e66039e epicsRingBytes avoid cantProceed 2011-08-26 16:33:57 -07:00
Michael DavidsaverandMichael Davidsaver 333ac3a88e osdThread avoid cantProceed 2011-08-26 16:33:56 -07:00
Michael DavidsaverandMichael Davidsaver 860a22a90b posix osdMutex don't use cantProceed 2011-08-26 16:33:55 -07:00
Andrew Johnson e15e42cff3 Merged Murali Shankar's iocLogPrefix changes.
Adjusted a few things during the merge.
2011-08-25 18:17:09 -05:00
Murali Shankar c12f6808f1 Added a couple of units tests for iocLogPrefix 2011-08-24 11:25:06 -07:00
Murali Shankar 0a4daefee3 Added the iocLogPrefix to the header so that we can use it in the unit test 2011-08-24 11:24:26 -07: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
Andrew Johnson 8ff3dcdf2d libCom: cleanup after rebase
remove empty src/libCom/tools dir
include as/RULES, lost during rebase
2011-08-23 17:28:20 -05:00
Murali Shankar 5a0364b74a iocLogPrefix does not let you change the prefix if the prefix has already been set. Display the prefix as
part of iocLogShow.
2011-08-23 11:51:19 -07: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
Murali Shankar 0cb7c9aafe Added support for iocLogPrefix
Refactored logClientSend in libCom/logClient/logClient.c; took the code between the mutex operations and
moved it to a private method - sendLogMessageinChunks. Call this method once for the prefix (if it exists) and once
for the actual message.
Added ioCsh registration code into src/libCom/iocsh/libComRegister.c registering a command called
"iocLogPrefix" that sets this prefix.

Unit tested with and without prefixes.
Performance tested with and without prefixes - without prefix is approx the same. With prefix is about
twice the time (reflecting the two calls to sendLogMessageinChunks I think)
2011-08-23 11:04:09 -07:00
Jeff Hill a05348d63e merged andrews merge to R3.15 2011-08-19 14:43:35 -06: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
Andrew Johnson d25ee10b71 Merge 3.14 changes from 2011-06-06 to 2011-08-17 2011-08-17 16:36:38 -05: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
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 9e60e923e7 redo change reversed by merge 2011-08-08 18:38:39 -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
Ralph Lange bc4a7854ec libCom: Explicitly use namespace std for size_t declaration in epicsSingleton.h
This fixes a compile error that occurs in new gcc versions (since ~4.6.1)
2011-08-08 18:31:19 +02: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 b051875f22 changed test iterations to accomodate old systems 2011-08-05 11:14:37 -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