Commit Graph

2866 Commits

Author SHA1 Message Date
Michael Davidsaver
a161e42e82 [PATCH 11/12] remove unimplimented PCI api 2010-05-25 13:58:52 +01:00
Michael Davidsaver
c1142675b6 [PATCH 10/12] move general macros and error codes to devLib.h
includes devLibVME.h for compatibility
2010-05-25 13:58:51 +01:00
Michael Davidsaver
50bcef9c63 [PATCH 09/12] rename vme pointer table 2010-05-25 13:58:50 +01:00
Michael Davidsaver
000c98dbaa [PATCH 08/12] fix includes 2010-05-25 13:58:50 +01:00
Michael Davidsaver
4a3b4358c3 [PATCH 07/12] rename devLib to devLibVME 2010-05-25 13:58:49 +01:00
Michael Davidsaver
46ec38756b [PATCH 06/12] use epics extern macro 2010-05-25 13:58:46 +01:00
Michael Davidsaver
e21cde013d [PATCH 05/12] reorganize devLib.h
Group functions by bus type with general functions at the top

add macro to exclude deprecated api
2010-05-25 13:58:45 +01:00
Michael Davidsaver
83adda7e6c [PATCH 04/12] move "virtual os" definition to a seperate file
The virtual os table is not something ordinary devLib users
should know or care about.
2010-05-25 13:58:44 +01:00
Michael Davidsaver
ad8cd28f7d [PATCH 03/12] mark all implimentation functions as static 2010-05-25 13:58:43 +01:00
Michael Davidsaver
acb905fcfc [PATCH 02/12] add devInterruptInUseVME to function table
Add test for interrupt handler function to the virtual os table.
Adds a stub implementation to devLib.c
Renames OS implementations functions for RTEMS and vxWorks to avoid symbol name conflicts
2010-05-25 13:58:43 +01:00
Michael Davidsaver
62d035c310 [PATCH 01/12] add jumping VME interrupt routines to independent implementation
Adds implementations which use the virtual os table to invoke the
OS specific call.

rename conflicting functions
2010-05-25 13:58:42 +01:00
Andrew Johnson
6790acf78f Fix for hang from Ron Sluiter. 2010-05-18 16:12:36 -05:00
Andrew Johnson
6eb36e1224 Fix build on Windows. 2010-05-18 16:10:07 -05:00
Andrew Johnson
6b64304570 Optimize epicsThreadOnce() routines.
Don't call epicsThreadGetIdSelf() unnecessarily, check for the value
EPICS_THREAD_ONCE_DONE first, since that's the most common state.
2010-05-14 17:26:54 -05:00
Andrew Johnson
6cd22d4efe Don't call errlogPrintf() in epicsThreadGetOsiPriorityValue()
This is a partial fix of a WIN32-only problem Mark Rivers reported.
A WIN32 thread created by a manufacturer's library is used to call one
of his callback routines, which tries to use an epics facility that has
an epicsThreadOnce().  The new version of epicsThreadOnce() uses
epicsThreadGetIdSelf() to detect recursive initialization; the thread
doesn't have an epicsThreadId yet, so epicsThreadImplicitCreate() is
asked to make one.  It calls epicsThreadGetOsiPriorityValue(), but
osdPriority is 15 which is not known by that code, so it reports an
error by calling errlogPrintf().  That checks epicsThreadIsOkToBlock()
which calls epicsThreadOnce() but that needs our epicsThreadId...

This doesn't solve the issue of the unknown osdPriority value 15
(priorityClass = 32), but it allows the IOC to continue working with
just a warning message at init time.

It also points out that calling epicsThreadGetIdSelf() every time we
check an epicsThreadOnce() is probably not good for performance.
2010-05-14 16:49:32 -05:00
Andrew Johnson
e9593e4b6c Run epicsMessageQueueTest last, since it takes 5 minutes. 2010-05-05 15:43:58 -05:00
Andrew Johnson
831f48e719 Fix the macLib buffer overflow issue, Bug 551909.
This is mostly Eric's patches, without the valend name change.
2010-05-04 15:43:20 -05:00
Andrew Johnson
5868aae543 Define EPICS_THREAD_ONCE_DONE properly on RTEMS. 2010-05-04 14:39:37 -05:00
Andrew Johnson
12dc840eda Don't print anything from epicsThreadShow() when tid=0.
Also don't pass level > 1 to vxWorks taskShow() routine.
2010-05-03 17:28:04 -05:00
Andrew Johnson
7f534cbc74 Rename 'thread' iocsh command to 'epicsThreadShow'. 2010-05-03 17:26:41 -05:00
Andrew Johnson
50d755a79f Fix compiler warning about missing sentinel in execlp() call. 2010-05-03 12:29:13 -05:00
Andrew Johnson
d192f51858 Don't use back-tick chars as open quotes, they aren't any more. 2010-04-28 17:29:04 -05:00
Andrew Johnson
b4be728539 cvtFastPerform measures performance, it doesn't do functional testing.
* Cleaned up some warning messages in it on darwin
* Removed it from the epicsRunLibComTests function.
2010-04-26 17:19:10 -05:00
Andrew Johnson
6ece3235c9 Added libCom/test code for epicsThreadOnce() implementations.
Also fixed subsystems that were not using epicsThreadOnce correctly.
2010-04-26 15:48:42 -05:00
Andrew Johnson
c5a27fa32e Rework epicsThreadOnce() using ideas from Michael Davidsaver.
An epicsThreadOnceId is now an epicsThreadId.
During initialization, it is set to the thread running the init routine
which can now detect a recursive initialization attempt and suspend.
EPICS_THREAD_ONCE_INIT is still zero, the implementations now define a
new private value for EPICS_THREAD_ONCE_DONE.  This is deliberately not
made public.
2010-04-26 15:38:11 -05:00
Michael Davidsaver
356ee58927 use osi epicsMath.h 2010-03-24 13:17:41 -04:00
Michael Davidsaver
cadbcb43a2 use C++ name make.h 2010-03-24 11:34:00 -04:00
Michael Davidsaver
75a15809fa epicsTimer: check that delay time is finite 2010-03-16 21:09:52 -04:00
Michael Davidsaver
244796bbaa remove STATIC 2010-03-16 21:09:51 -04:00
Andrew Johnson
3b0036b389 Improve code readablity, add more numeric tests. 2010-03-09 10:49:21 -06:00
Andrew Johnson
c29551f247 Rename the time provider name routines, don't rely on the #define. 2010-02-09 10:49:08 -06:00
Andrew Johnson
215bbed49c Include standard headers before defining epicsExportSharedSymbols 2010-01-11 17:56:17 -06:00
Andrew Johnson
023cf2c548 Added redirection support for puts() and putchar(). 2009-12-22 23:47:19 +00:00
Andrew Johnson
fd5773a3fc ESHUTDOWN is not in FreeBSD and hence not in RTEMS. 2009-12-22 17:43:25 +00:00
Andrew Johnson
b8a2e64601 Added a couple of COMMANDLINE_LIBRARY synonyms for READLINE 2009-09-29 18:58:04 +00:00
Andrew Johnson
534ca2c86e Make ellFree() a 1-argument macro, calls ellFree2() with free as freeFunc. 2009-08-28 18:34:38 +00:00
Andrew Johnson
f17ac39f29 Disable divide by zero warnings on MSVC when generating NAN and INF.
Use those values rather than calculating them independently.
2009-08-25 18:19:49 +00:00
Jeff Hill
d84e9cb3ec exp passed to assert must not change the state of the data structures 2009-08-24 17:08:41 +00:00
Jeff Hill
fa24d119dd use verify instead of assert (in tests) 2009-08-24 17:07:03 +00:00
Andrew Johnson
1c95101ae1 Fixed Till's report of non-thread-safe lazy-init. 2009-08-21 17:32:13 +00:00
Andrew Johnson
c28520bea6 Adjust test 66 so it doesn't fail if the gcc optimizer result gives -1 but
glibc returns +1.  Both are correct, gcc is following a newer standard.
2009-08-21 14:49:01 +00:00
Andrew Johnson
87eace1bd4 Fix for solaris compiler complaint about ambiguity of 'exception'. 2009-08-18 19:26:37 +00:00
Jeff Hill
0012042a5e accomodate archaic vxWorks gnu compiler 2009-08-14 17:31:34 +00:00
Jeff Hill
78fc566dc4 improved thread creation failure exception diagnostics 2009-08-14 16:54:45 +00:00
Jeff Hill
6fe047731f added shjow func to epicsThread class 2009-08-10 21:48:50 +00:00
Jeff Hill
56c4c92588 improved show diagnostic 2009-08-10 21:41:59 +00:00
Andrew Johnson
57e5406684 Added STATIC_ASSERT macro.
Removed assert() definition for pre-ANSI C compilers.
2009-08-04 19:07:07 +00:00
Andrew Johnson
4868904839 Added CONTAINER macro, from Micheal Davidsaver (BNL). 2009-08-04 16:31:06 +00:00
Andrew Johnson
90db5a4ab0 Deleted test code which was moved to libCom/test some time ago. 2009-08-03 17:13:04 +00:00
Jeff Hill
72e1dba496 o no need to allocate or initialize one more fd_set than is used
(not a bug but messy)
o added optimization where we only check as many registered fd's
on the list as select tells us are active in its status
o added code to clear all of the  fd_set if select returns an error
(in practice this would not cause a bug other than some extra activity
that would immediately self terminate when it clear the flag in the fd_set,
and also we dont see the error message printed when select returns an error)
2009-07-30 23:21:19 +00:00