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
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.
* Added (c) header, expanded tabs
* Set library path and use new library names
* Added -D (dependency) output handling
* Added -o (output file) support
* Use <td> instead of <th> for normal cell data
This is by no means complete, but it does seem to work.
He also wrote:
Here is at least a short list of things to think about:
How do we add this into the other documentation?
How do we add the long description?
Modify Readfile to do includes or not?
Modify for multiple records in a file?
Modify for no records in the file i.e. dbCommon?
Automatically add link to menu information if DBF_MENU?
Should we go through and set promptgroup on all fields to make this more
correct?
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.