Commit Graph

14729 Commits

Author SHA1 Message Date
Andrew Johnson e2464c8572 Implemented "global" variables in substitution files.
Rewrote the YACC grammar, with help from Benjamin Franksen in formally
defining the substitution file format in EBNF.  This version also
changes the way in which variables are added to the sub_collect
string; previously it appended a ',' after every entry, and removed it
off the end before calling dbLoadRecords(), but now we put the ',' at
the beginning of each entry, and just offer dbLoadRecords() the string
starting at the second character (not that this really matters, macLib
will quite happily ignore either a leading or a trailing comma in the
variable definition string).

We now warn if there are substitution values for which we have no
name, or if the file uses the deprecated syntax which permitted a
bareword token in front of the variable substitution or pattern
definition braces.
2010-08-24 19:01:19 -05:00
Ralph Lange a0a9ee4553 ca: Avoid possible race condition during cac shutdown.
While the cac dtor runs and waits for TCP circuit threads to exit,
new circuits could be opened by name resolution replies on existing
(still active) circuits.
Avoid this by setting a flag (lock being held) in the dtor, and
checking it in cac::transferChanToVirtCircuit.
2010-08-23 16:17:16 -04:00
Ralph Lange 6b6de69f1d build: Point default MSI to the base version. 2010-08-23 15:08:24 -04:00
Ralph Lange 52f4c8ae8f dbtools: shuffle files towards a reasonable layout, keep test files in test dir 2010-08-23 14:48:43 -04:00
Ralph Lange 2a19c5f0b8 dbtools: Join msi repository into ../src/dbtools 2010-08-23 14:36:23 -04:00
Andrew Johnson 4a637c04cf dbtools: Added command-line variable parameters. 2010-08-20 17:59:38 -05:00
Andrew Johnson 3db5427e1d dbtools: Source code clean-up, code layout changes only. 2010-08-20 17:50:52 -05:00
Andrew Johnson 90ab284583 db: Replace forward reference to notifyCallback, got lost in rebase. 2010-08-20 00:40:26 -05:00
Andrew Johnson 85c2877746 Document the dynamic-array changes. 2010-08-17 18:06:19 -05:00
Andrew Johnson a6a01e6822 Converted buckTest.c to use epicsTime.h instead of time.h
This should finally resolve the build conflict between RTEMS-uc5282
and Windows, and remove the build warning on vxWorks.
2010-08-17 17:53:43 -05:00
Jeff Hill 7af0397d58 Examining the previous change I see that it will introduce a race condition when circuits are being created and destroyed at close to the same instant in time. See revision 11786 of cac.cpp which fixes mantis 334 if you are interested in what this code does. After running the regression tests, I pushed in a fix (which is removing above mentioned change and restoring the increment of iiuExistenceCount in cac::findOrCreateVirtCircuit. 2010-08-16 17:45:06 -06:00
Jeff Hill a3dd3e1a2f unistd.h isnt available on windows, and doesnt appear to be required by this code? 2010-08-16 17:34:39 -06:00
Andrew Johnson 09c0c43865 Cleanup a couple of compiler warnings. 2010-08-16 16:15:26 -05:00
Ralph Lange 2666e9d62b Bug fixes to CA client introduced by CA-over-TCP code. 2010-08-16 15:49:52 -05:00
Jeff Hill 1eb5546eb7 meged andrew's change 2010-08-13 18:31:00 -06:00
Jeff Hill c1bd11de58 fixed bug where win32 version of epicsThreadHighestPriorityLevelBelow didnt map to a lower priority successfully if the epics priority was mapping into the 2nd win32 priority bucket 2010-08-13 18:15:49 -06:00
Andrew Johnson 25d1b89de1 Use $(RTEMS_VERSION) in default path to RTEMS_BASE. 2010-08-13 17:56:27 -05:00
Andrew Johnson 1bab392da7 Deleted trailing ';' from epicsPlacementDeleteOperator macro
(which looks like a member function, but isn't).
2010-08-13 13:12:06 -05:00
Andrew Johnson 0c4746dd66 Moved new variable definitions to the beginning of their block.
Older C compilers such as vxWorks 5.x insist on this.
2010-08-13 12:59:50 -05:00
Michael Abbott 053ab01db4 Guard memset in camessage.c to prevent wild memory overrun if mismatch
between payload and data size.
2010-08-11 17:37:56 -05:00
Michael Abbott 0291900562 Add CA message header size optimisation.
If a packet is sufficiently small it can be worth the small
optimisation of saving the 8 bytes in a large packet header.
2010-08-11 17:37:30 -05:00
Michael Abbott b2374f583b Drive-by refactoring in caserverio.c
Minor refactoring of code block in cas_copy_in_header() to gather
common header code.
2010-08-11 17:36:58 -05:00
Michael Abbott 89ebfc6e9b Add autosizing array support for caget and camonitor. 2010-08-11 17:36:36 -05:00
Michael Abbott 519c94a6e3 Update rsrv to support V4.13 protocol extension.
The rsrv server is updated in this commit to deliver variable sized
waveforms in response to a zero length request, implementing an
extension to the v4 EPICS protocol tied to minor version 13.

The core of the changes are in read_reply, rsrv/camessage.c, which first
reserves packet space for the largest possible response, but then resizes
the packet according to how much data is actually returned from the
database.
2010-08-11 17:36:11 -05:00
Michael Abbott ee4a615caa Client side support for automatic resizing arrays.
In this commit the channel access client is modified to allow a zero
size request in a caget or camonitor call.  This is passed through to
the corresponding CA_PROTO_READ_NOTIFY or CA_PROTO_EVENT__ADD message,
but only if the minor version of the protocol is >=13.

This commit also adds a new protocol test, CA_V413(), which detects a
server which claims to understand the new zero length request.

Finally, this commit prepares for a subtle change in the CA protocol.
A request for a zero length subscription or data request, which will
only be made for protocol version 4.13 and above, is interpreted as a
request for autosized data, where the intrinsic dynamic length of the
requested waveform should be returned.

With the synchronous ca_array_get() call there is no mechanism available
to pass back the size of the retrieved data if it is different from
the requested count, so the simplest thing is to ensure we don't
request autosizing data through this api.
2010-08-11 17:35:23 -05:00
Michael Abbott e54b631b8d Guard memset in camessage.c to prevent wild memory overrun if mismatch
between payload and data size.
2010-08-11 16:49:46 -05:00
Michael Abbott 9d9ba1a442 Add CA message header size optimisation.
If a packet is sufficiently small it can be worth the small
optimisation of saving the 8 bytes in a large packet header.
2010-08-11 16:42:44 -05:00
Michael Abbott 30f0871c2b Drive-by refactoring in caserverio.c
Minor refactoring of code block in cas_copy_in_header() to gather
common header code.
2010-08-11 16:41:15 -05:00
Michael Abbott aa23ab63f1 Add autosizing array support for caget and camonitor. 2010-08-11 16:39:52 -05:00
Michael Abbott e87bbef75c Update rsrv to support V4.13 protocol extension.
The rsrv server is updated in this commit to deliver variable sized
waveforms in response to a zero length request, implementing an
extension to the v4 EPICS protocol tied to minor version 13.

The core of the changes are in read_reply, rsrv/camessage.c, which first
reserves packet space for the largest possible response, but then resizes
the packet according to how much data is actually returned from the
database.
2010-08-11 16:38:49 -05:00
Michael Abbott a0c0c55347 Client side support for automatic resizing arrays.
In this commit the channel access client is modified to allow a zero
size request in a caget or camonitor call.  This is passed through to
the corresponding CA_PROTO_READ_NOTIFY or CA_PROTO_EVENT__ADD message,
but only if the minor version of the protocol is >=13.

This commit also adds a new protocol test, CA_V413(), which detects a
server which claims to understand the new zero length request.

Finally, this commit prepares for a subtle change in the CA protocol.
A request for a zero length subscription or data request, which will
only be made for protocol version 4.13 and above, is interpreted as a
request for autosized data, where the intrinsic dynamic length of the
requested waveform should be returned.

With the synchronous ca_array_get() call there is no mechanism available
to pass back the size of the retrieved data if it is different from
the requested count, so the simplest thing is to ensure we don't
request autosizing data through this api.
2010-08-11 16:22:54 -05:00
Andrew Johnson a0fb7fbed7 Clean up warnings from vxWorks 6.8.
Added back the -include vxWorks.h option for gcc with vxWorks 6,
it resolves many warnings about OFFSET being redefined.
2010-08-11 10:45:17 -05:00
Ralph Lange 0e4ff4f939 Fix: Made all RULES.Db rules use $*.tmp style names for temporary files (fixes lp:615916) [configure/RULES.Db] 2010-08-11 10:42:26 -04:00
Andrew Johnson a02984f2ea Release notes for the CA-over-TCP branch. 2010-08-10 16:19:57 -05:00
Andrew Johnson eda402cf66 Merged Ralph's ca-over-tcp branch.
Fixed some vxWorks compile errors, and made a number of edits
to the HTML in the CAref.html documentation.
2010-08-10 16:05:46 -05:00
Andrew Johnson cc95161af0 Merged base-tests branch from epics-base-testing team.
Modified testspec output to omit Tests: line when empty
Added testspec generation to src/db/test/Makefile.
2010-08-04 14:16:14 -05:00
Andrew Johnson c2693f5687 Applied vxWorks 6.x patches, cleanup. 2010-07-29 15:02:34 -05:00
Andrew Johnson 2bb4e63d1e Clean up munch.pl, add -o option
chmod -x src/tools/*.pl
2010-07-29 14:58:14 -05:00
Andrew Johnson 0f431edbe6 Add support for vxWorks 6.8. 2010-07-29 12:39:54 -05:00
Andrew Johnson f29bdb9d6e Solve C++ exception problems in vxWorks 6.x:
* Use a linker script when generating .munch files
 * Output exception handler frame registration code in _ctdt.c files
2010-07-29 12:35:53 -05:00
Eric Norum 49a7483c7a Add RTEMS R4.10 support 2010-07-23 09:26:29 -07:00
Eric Norum 31326b8b9f Add RTEMS R4.10 support 2010-07-23 09:21:02 -07:00
unknown 6cfb241404 Fix RTEMS build issue finding close() 2010-07-19 14:01:41 -05:00
unknown 1660dcac9c Removed trailing ';' from dbGetSevr macro definition. 2010-07-19 09:49:01 -05:00
Janet Anderson 1815c0fda9 Use /LTCG for non shared libraries if HOST_OPT is YES. 2010-07-12 14:58:30 -05:00
Janet Anderson 61733489e8 Don't use manifest tool for MS Visual C++ 2010 (and later) builds. 2010-07-12 14:54:51 -05:00
Janet Anderson 14d2e95bcf Run EpicsHostArch.pl if EPICS_HOST_ARCH is not set. 2010-07-09 16:16:24 -05:00
Janet Anderson 1245a007b7 Added comments about implementing os specific dbd files. 2010-07-09 16:11:50 -05:00
Janet Anderson cff7171831 Change for parallel builds when running multiple msi commands. 2010-07-09 16:02:41 -05:00
Janet Anderson 1e0f2ae79f Added LINKER_USE_RPATH option. 2010-07-09 15:53:58 -05:00