Backwards-compatible enhancement to the asTrapWrite API to provide
listener routines with the data being put by the client.
The asTrapWriteMessage structure is extended with 3 new fields
for data type, element count and a pointer to the source buffer.
Tim Mooney requested this enhancement for his caPutRecorder code,
which doesn't work if the record overwrites the new value within
its process() routine, e.g. when jogging a motor record.
Major rewrites; the original epicsStrnRawFromEscaped() could read
beyond the end of the input buffer if the input count ended in the
middle of an octal or hex escape sequence. Zero termination did not
always match the return count, and hex escapes were always 2 digits,
contrary to the C standard.
New versions don't use epicsSnprintf() or sscanf() for hex and octal
conversions, so should be slightly faster.
Added 81 new tests to check the above issues.
* VxWorks 5.5.2 doesn't like C++-style variable declarations in C code
* Older MS compiler doesn't have strto[u]ll
* Wrote release note entry for iocshLoad command.
osiSpawnDetachedProcess() switches to SCHED_OTHER after fork() so
the new program will not be real-time unless is requests it itself.
Only happens when USE_POSIX_THREAD_PRIORITY_SCHEDULING = YES
To Do:
* Test that -l the flag to registerRecordDeviceDriver.pl works
as expected on Windows.
* Modify example template, or create a new template.
* Work out if/how this affects VxWorks, can we generate a munch
file that works the same way as a shared library?
* Test on all arch's, especially Darwin & Windows.
Allow the NTP Time provider (used on VxWorks and RTEMS only)
to adapt to changes in the OS clock tick rate after the provider
has been initialized.
Changing the tick rate after iocInit() is not advisable,
other software might still misbehave if initialized before
an OS tick rate change.