Compare commits

...

30 Commits

Author SHA1 Message Date
Janet B. Anderson
e9b49d233b R3.14.8.2 2006-01-06 15:55:13 +00:00
Andrew Johnson
16e0409813 epicsStrtod fix. 2006-01-05 21:38:14 +00:00
Andrew Johnson
10c03d3e19 We took epicsShareAPI out of Win32 already, which was the only arch that
might have needed it!
2006-01-05 21:12:32 +00:00
Andrew Johnson
7aa6a2ca98 Better fix to the epicsStrtod problem: Don't compile our function if epicsStrtod
is a macro; that way you can't set a breakpoint on it which would never fire.
2006-01-05 21:08:02 +00:00
Ken Evans
705d8ccf98 Added _CRT_NONSTDC_NO_DEPRECATE switch to disable MSVC 8 Posix
deprecated warnings.
2006-01-04 21:27:54 +00:00
Ken Evans
ae27b2ad0e Changed /GX to /EHsc and defined _CRT_SECURE_NO_DEPRECATE for MSVC 8. 2006-01-04 18:11:44 +00:00
W. Eric Norum
8d3dc9eb33 Avoid infinite recursion on systems with 'working' strtod() functions. 2005-12-26 18:32:43 +00:00
Janet B. Anderson
1e821d866e Set EPICS_CVS_SNAPSHOT to -CVS. 2005-12-20 15:25:07 +00:00
Janet B. Anderson
03bf89c7c2 R3.14.8.1 2005-12-20 14:59:00 +00:00
Janet B. Anderson
b01b09240c Added deprecated EPICS_UPDATE_LEVEL.. 2005-12-20 14:56:46 +00:00
W. Eric Norum
e0887d197e Get rid of a bunch of conditional compile statements. 2005-12-19 22:27:47 +00:00
Andrew Johnson
3191b9b404 Notes about the version number changes. 2005-12-19 21:57:57 +00:00
Janet B. Anderson
147e21b71f Changed EPICS_UPDATE_LEVEL to EPICS_PATCH_LEVEL. 2005-12-19 21:42:40 +00:00
Janet B. Anderson
c57beaad68 Win32 changes. 2005-12-19 21:10:30 +00:00
Janet B. Anderson
45685c52d2 Changed EPICS_UPDATE_LEVEL to EPICS_PATCH_LEVEL. 2005-12-19 21:09:44 +00:00
Janet B. Anderson
00d8ae7d79 Updated version number description. 2005-12-19 20:28:00 +00:00
Andrew Johnson
d9184abd62 Version numbering system change. 2005-12-16 16:47:52 +00:00
Andrew Johnson
66fbc8b27c R3.14.8.1 changes. 2005-12-15 19:39:03 +00:00
W. Eric Norum
a65943481d Improved epicsThreadGetName() so that it works for all threads, not just those
created by epicsThreadCreate().
2005-12-15 16:49:42 +00:00
Janet B. Anderson
09ea15376f Changed SCRIPT to SCRIPTS in comment. 2005-12-14 15:04:37 +00:00
Marty Kraimer
de797d11e2 fix win32 compiler warnings 2005-12-13 12:57:19 +00:00
Andrew Johnson
6e09e17a23 Moved Marty's latest comments into a "Changes since R3.14.8" section.
Cleaned up some   entities that appeared lower down.
2005-12-12 22:19:01 +00:00
Janet B. Anderson
a0e61daaac Removed epicsShareAPI from epicsStrtod. 2005-12-12 21:27:07 +00:00
Janet B. Anderson
5506587d06 Removed epicsShareAPI where not needed. 2005-12-12 21:26:01 +00:00
Andrew Johnson
225f816f0e epicsShare macro fixes from Mark Rivers (copied from the main trunk). 2005-12-12 21:25:17 +00:00
Marty Kraimer
cdda915248 o and x format should have unsigned args 2005-12-12 20:09:02 +00:00
Marty Kraimer
1a1c4dceb0 changes for libCom/misc 2005-12-12 19:55:34 +00:00
Marty Kraimer
b283cb1fcd clean up epicsStdlib 2005-12-12 19:55:11 +00:00
Marty Kraimer
3499fbe51d get rid of epicsShareAPI; epicsStrtok_r is new; clean up epicsStdlib 2005-12-12 19:54:48 +00:00
Jeff Hill
bd14b17c94 fixed send thread blocks trying to destroy the IIU because the
callback lock was taken without using a callback lock manager
2005-12-08 16:23:15 +00:00
53 changed files with 384 additions and 342 deletions

View File

@@ -96,13 +96,14 @@ ACC_SLIBS_NO=
# Use of /Za would dissable DLL import/export keywords which
# EPICS include/excludes using architecture neutral macros
#
# /GX support C++ exceptions
# /EHsc support C++ exceptions
# /GR generate RTTI information
#
CCC = cl /GX /GR
CCC = cl /EHsc /GR
CCC_NORMAL = $(CCC) /nologo /D__STDC__=0
CCC_STRICT = $(CCC) /nologo /D__STDC__=0
CCC_TEMPL_INST_FLAG =
ARCH_DEP_CPPFLAGS += /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
#
# /W<N> use warning level N

View File

@@ -10,24 +10,6 @@
#
# $Id$
#
# EPICS Version information
#
# This file is interpreted by the Bourne Shell (MakeRelease), so spaces are
# not allowed around the '=' signs or in unquoted values.
#
# EPICS Version information now comes from configure...
EPICS_VERSION=3
EPICS_REVISION=14
EPICS_MODIFICATION=8
EPICS_UPDATE_NAME=
EPICS_UPDATE_LEVEL=0
EPICS_LOCAL_NAME=B
EPICS_LOCAL_VERSION=0
EPICS_VERSION_STRING="EPICS Version ${EPICS_VERSION}.${EPICS_REVISION}.${EPICS_MODIFICATION}.${EPICS_UPDATE_NAME}${EPICS_UPDATE_LEVEL}.$(EPICS_LOCAL_NAME)$(EPICS_LOCAL_VERSION)"
CVS_DATE="\$$Date$$"
CVS_TAG="\$$Name$$"
BASE_3_14=YES
include $(EPICS_BASE)/configure/CONFIG_BASE_VERSION

View File

@@ -12,19 +12,40 @@
#
# EPICS Version information
#
# This file is interpreted by the Bourne Shell (MakeRelease), so spaces are
# not allowed around the '=' signs or in unquoted values.
# Only the person making an official EPICS release should make changes in
# this file.
#
# EPICS_SITE_VERSION is defined in CONFIG_SITE for sites that want a local
# version number to be included in the reported version string.
EPICS_VERSION=3
EPICS_REVISION=14
EPICS_MODIFICATION=8
EPICS_UPDATE_NAME=
EPICS_UPDATE_LEVEL=0
BASE_3_14=YES
EPICS_VERSION_STRING="EPICS Version ${EPICS_VERSION}.${EPICS_REVISION}.${EPICS_MODIFICATION}.${EPICS_UPDATE_NAME}${EPICS_UPDATE_LEVEL}"
EPICS_VERSION = 3
EPICS_REVISION = 14
# This part may contain letters, eg 0beta1
EPICS_MODIFICATION = 8
# Not included if zero
EPICS_PATCH_LEVEL = 2
# This will be -CVS or empty at an official release point
#EPICS_CVS_SNAPSHOT=-CVS
EPICS_CVS_SNAPSHOT=
# No changes should be needed below here
ifneq ($(EPICS_PATCH_LEVEL),0)
EPICS_PATCH_VSTRING=.$(EPICS_PATCH_LEVEL)
endif
ifneq ($(strip $(EPICS_SITE_VERSION)),)
EPICS_SITE_VSTRING=-$(EPICS_SITE_VERSION)
endif
EPICS_SHORT_VERSION=$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)$(EPICS_PATCH_VSTRING)
EPICS_VERSION_NUMBER=$(EPICS_SHORT_VERSION)$(EPICS_CVS_SNAPSHOT)$(EPICS_SITE_VSTRING)
EPICS_VERSION_STRING="EPICS Version $(EPICS_VERSION_NUMBER)"
CVS_DATE="\$$Date$$"
CVS_TAG="\$$Name$$"
BASE_3_14=YES

View File

@@ -174,3 +174,7 @@ COMPAT_313=NO
# Use POSIX thread priority scheduling (YES or NO)
USE_POSIX_THREAD_PRIORITY_SCHEDULING = NO
# Site version number, if set will append '-' and this string to the
# EPICS version number string that is reported by many tools
EPICS_SITE_VERSION =

View File

@@ -197,7 +197,7 @@ PROD_VERSION =
# Scripts to install
#
# If there is both ../$(SCRIPT) and ../$(OS_CLASS)/$(SCRIPT),
# If there is both ../$(SCRIPTS) and ../$(OS_CLASS)/$(SCRIPTS),
# the latter, system specific version will be installed!
#
SCRIPTS_DEFAULT = script_for_rest

View File

@@ -17,12 +17,12 @@ CCC = $(GNU_BIN)/c++
#
# Darwin shared libraries
#
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \
-install_name $(firstword $(SHRLIB_SEARCH_FULLPATHDIRS))/$@ \
-compatibility_version $(EPICS_VERSION).$(EPICS_REVISION) \
-current_version $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
SHRLIB_SUFFIX = .$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION).dylib
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
-current_version $(SHRLIB_VERSION)
SHRLIB_SUFFIX = .$(SHRLIB_VERSION).dylib
LOADABLE_SHRLIB_LDFLAGS = -bundle -flat_namespace -undefined suppress

View File

@@ -105,12 +105,13 @@ CPP = cl /C /E
# Use of /Za would dissable DLL import/export keywords which
# include/excludes using architecture neutral macros
#
# /GX - generate code for exceptions
# /EHsc - generate code for exceptions
# /GR - generate code for run time type identification
#
CCC = cl /nologo /GX /GR
CCC = cl /nologo /EHsc /GR
CONFORM_CXXFLAGS_NORMAL =
CONFORM_CXXFLAGS_STRICT = /D__STDC__=0
CODE_CPPFLAGS += /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
#
# /W<N> use warning level N

View File

@@ -5,14 +5,14 @@
# Site Specific definitions for hpux-parisc target
# Only the local epics system manager should modify this file
# NOTE for SHARED_LIBRARIES: If YES (which is the default now) then either
# a) SHLIB_PATH must include the full absolute pathname to
# $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) (or wherever you install
# NOTE: If SHARED_LIBRARIES=YES (now the default) then
# a) Environment variable SHLIB_PATH must include the full absolute pathname
# to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) (or wherever you install
# the EPICS shared libraries on your system) when invoking base
# executables.
# executables, or
# b) Add the path to SHRLIB_SEARCH_FULLPATHDIRS below, which will burn
# the runtime search path into the executables.
#SHARED_LIBRARIES=YES
# This is the absolute path to the generic INSTALL_LOCATION, for SHARED_LIBRARY searches.
SHRLIB_SEARCH_FULLPATHDIRS += /opt/epics/R$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)/base/$(EPICS_VERSION)-$(EPICS_REVISION)-$(EPICS_MODIFICATION)-$(EPICS_UPDATE_NAME)$(EPICS_UPDATE_LEVEL)/lib/$(EPICS_HOST_ARCH)
SHRLIB_SEARCH_FULLPATHDIRS += /opt/epics/R$(EPICS_SHORT_VERSION)/base/$(EPICS_VERSION)-$(EPICS_REVISION)-$(EPICS_MODIFICATION)-$(EPICS_PATCH_LEVEL)$(EPICS_CVS_SNAPSHOT)$(EPICS_SITE_VSTRING)/lib/$(EPICS_HOST_ARCH)

View File

@@ -2,12 +2,67 @@
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>EPICS Base R3.14.x Release Notes</title>
</head>
<body lang="en">
<h1 align="center">EPICS Base Release 3.14.8</h1>
<h1 align="center">EPICS Base Release 3.14.8.2</h1>
<h2 align="center">Changes since 3.14.8.1</h2>
<h4>epicsStrtod</h4>
<p>On architectures whose native version of strtod() actually works properly
(i.e. converts +/-Inf[inity] and NaN strings to their double equivalents) we
managed to break the use of this in the R3.14.8.1 release. This is now
fixed.</p>
<h2 align="center">Changes since 3.14.8</h2>
<h4>Version Numbering</h4>
<p>This release adds a fourth level of version number, which we haven't used
since R3.13.1.1. The intention is to imply that R3.14.8.1 includes some small
but important changes since R3.14.8 but no signficant new behaviours or API
modifications. This fourth level has required us to modify the version number
system and the macros in the epicsVersion.h file slightly though. We have taken
the opportunity to introduce a new variable <tt>EPICS_SITE_VERSION</tt> to the
file configure/CONFIG_SITE that adds an optional site-specific version number;
sites that were achieving this by editing the configure/CONFIG_BASE_VERSION file
should switch to setting <tt>EPICS_SITE_VERSION</tt> instead.</p>
<h4>CA</h4>
<p>Mantis entries fixed:</p>
<p>232 - non-preemptive mode client relying on ca_poll does not always
reconnect</p>
<h4>Win32 symbol changes</h4>
<p>These changes are required to allow software outside of Base to be built on
win32 architectures.</p>
<ul>
<li>win32 epicsShareAPI changes to libCom
<p>The win32 Pascal calling convention (epicsShareAPI) has been removed
from the following header files in libCom/misc: adjustment.h,
cantProceed.h, epicsConvert.h, epicsStdlib.h, epicsString.h.</p>
</li>
<li>epicsString
<p>A new function epicsStrtok_r has been added because win32 does not
implement strtok_r.</p>
</li>
<li>epicsStdlib
<p>All function described in epicsStdlib.h are now implemented in
epicsStdlib.c</p>
</li>
<li>win32 epicsShareExtern changes in dbStaticLib
<p>The type name mapping array mapdbfType defined in dbFldTypes.h has had
the correct export modifier keywords added to it for use on win32.</p>
</li>
</ul>
<h2 align="center">Changes since 3.14.7</h2>
@@ -1522,70 +1577,70 @@ applications.
<blockquote>
DBDEXPAND = &lt;name&gt;Include.dbd  </blockquote>
DBDEXPAND = &lt;name&gt;Include.dbd</blockquote>
NOTE: If any of your *App/*Db/Makefiles contain "DBDNAME =" lines you
should make these same changes in that *Db dirctory.</li>
<li>In all *App/src/Makefile Makefiles change
<blockquote>
RECTYPES=&lt;name&gt;.h  </blockquote>
RECTYPES=&lt;name&gt;.h</blockquote>
to
<blockquote>
DBDINC+=&lt;name&gt;  </blockquote>
DBDINC+=&lt;name&gt;</blockquote>
change
<blockquote>
MENUS=&lt;name&gt;.h  </blockquote>
MENUS=&lt;name&gt;.h</blockquote>
to
<blockquote>
DBDINC+=&lt;name&gt;  </blockquote>
DBDINC+=&lt;name&gt;</blockquote>
change
<blockquote>
BPTS  </blockquote>
BPTS</blockquote>
to
<blockquote>
DBD  </blockquote>
DBD</blockquote>
change
<blockquote>
INSTALLDB  </blockquote>
INSTALLDB</blockquote>
to
<blockquote>
DB  </blockquote>
DB</blockquote>
change
<blockquote>
DBDINSTALL  </blockquote>
DBDINSTALL</blockquote>
to
<blockquote>
DBD  </blockquote>
DBD</blockquote>
</li>
<li>In all example *App/src/Makefile files change
<blockquote>
example_SRCS_DEFAULT += registerRecordDeviceDriver.c  </blockquote>
example_SRCS_DEFAULT += registerRecordDeviceDriver.c</blockquote>
to
<blockquote>
example_SRCS_DEFAULT += &lt;name&gt;_registerRecordDeviceDriver.cpp
 </blockquote>
</blockquote>
where &lt;name&gt; is the base name of a &lt;name&gt;.dbd file which was
created from a &lt;name&gt;Include.dbd file and which will be loaded in a
st.cmd or stcmd.host script (e.g. example).</li>
<li>In ./iocBoot/ioc&lt;name&gt;/st.cmd files change
<blockquote>
dbLoadDatabase("dbd/exampleApp.dbd")  </blockquote>
dbLoadDatabase("dbd/exampleApp.dbd")</blockquote>
to
<blockquote>
dbLoadDatabase("dbd/example.dbd")  </blockquote>
dbLoadDatabase("dbd/example.dbd")</blockquote>
</li>
<li>In &lt;top&gt;/iocBoot/ioc&lt;name&gt;/stcmd.host files change
@@ -1601,8 +1656,8 @@ applications.
<h3>EPICS_HOST_ARCH changes</h3>
<p>GNU compiler builds are now determined by the value of EPICS_HOST_ARCH and
are no longer specified in CONFIG_SITE.  All references to the ANSI (ACC/GCC)
and CPLUSPLUS (CCC/G++) macros have been removed.</p>
are no longer specified in CONFIG_SITE. All references to the ANSI
(ACC/GCC) and CPLUSPLUS (CCC/G++) macros have been removed.</p>
<h3>libCom</h3>

View File

@@ -135,21 +135,21 @@ have been responsible for specific tasks in the past:</p>
<tr>
<td> </td>
<td>Janet Anderson</td>
<td>Edit and commit changes to the EPICS version number files,
config/CONFIG_BASE_VERSION and configure/CONFIG_BASE_VERSION.</td>
<td>Edit and commit changes to the EPICS version number file
configure/CONFIG_BASE_VERSION.</td>
</tr>
<tr>
<td> </td>
<td>Janet Anderson</td>
<td>Tag the module in CVS. Version tags take the form
<code>R</code><i><code>x</code></i><code>-</code><i><code>y</code></i><code>-</code><i><code>z</code></i><code>[-{alpha,beta,</code><i><code>n</code></i><code>}]</code></td>
<td>Tag the module in CVS. Official base release version tags take the form
<code>R</code><i><code>x</code></i><code>-</code><i><code>y</code></i><code>-</code><i><code>z</code></i><code>[-</code><i><code>n</code></i><code>]</code></td>
</tr>
<tr>
<td> </td>
<td>Janet Anderson</td>
<td>Export the tagged version, "cvs export -kv -d base-x.y.z
-r Rx-y-zepics/base", and create the
baseR<i>x.y.z</i>[{alpha,beta}<i>n</i>].tar.gz file of the result</td>
<td>Export the tagged version, "cvs export -kv -d base-x.y.z[.n]
-r Rx-y-z[-n] epics/base", and create the
baseRx.y.z[.n]tar.gz file of the result</td>
</tr>
<tr>
<td> </td>

View File

@@ -32,90 +32,28 @@
#include <epicsThread.h>
#include <epicsTime.h>
#include <epicsExit.h>
#include <envDefs.h>
#include <errlog.h>
#include <logClient.h>
#include <osiUnistd.h>
#include <iocsh.h>
/*
* Architecture-dependent routines
*/
#if defined(__mcpu32__) || defined(__mcf528x__)
static void
logReset (void)
{
int bit, rsr;
int i;
const char *cp;
char cbuf[80];
void rtems_bsp_reset_cause(char *buf, size_t capacity) __attribute__((weak));
void (*fp)(char *buf, size_t capacity) = rtems_bsp_reset_cause;
#if defined(__mcpu32__)
rsr = m360.rsr;
m360.rsr = ~0;
#else
rsr = MCF5282_RESET_RSR;
#endif
for (i = 0, bit = 0x80 ; bit != 0 ; bit >>= 1) {
if (rsr & bit) {
switch (bit) {
#if defined(__mcpu32__)
case 0x80: cp = "RESETH*"; break;
case 0x40: cp = "POWER-UP"; break;
case 0x20: cp = "WATCHDOG"; break;
case 0x10: cp = "DOUBLE FAULT"; break;
case 0x04: cp = "LOST CLOCK"; break;
case 0x02: cp = "RESET"; break;
case 0x01: cp = "RESETS*"; break;
#else
case MCF5282_RESET_RSR_LVD: cp = "Low-voltage detect"; break;
case MCF5282_RESET_RSR_SOFT: cp = "Software reset"; break;
case MCF5282_RESET_RSR_WDR: cp = "Watchdog reset"; break;
case MCF5282_RESET_RSR_POR: cp = "Power-on reset"; break;
case MCF5282_RESET_RSR_EXT: cp = "External reset"; break;
case MCF5282_RESET_RSR_LOC: cp = "Loss of clock"; break;
case MCF5282_RESET_RSR_LOL: cp = "Loss of lock"; break;
#endif
default: cp = "??"; break;
}
i += sprintf (cbuf+i, cp);
rsr &= ~bit;
if (rsr)
i += sprintf (cbuf+i, ", ");
else
break;
}
if (fp) {
char buf[80];
fp(buf, sizeof buf);
errlogPrintf ("Startup after %s.\n", buf);
}
errlogPrintf ("Startup after %s.\n", cbuf);
}
#else
static void
logReset (void)
{
errlogPrintf ("Started.\n");
}
#endif
#ifdef __i386__
/*
* Remote debugger support
*
* i386-rtems-gdb -b 38400 example(binary from EPICS build -- not netbootable image!)
* (gdb) target remote /dev/ttyS0
*/
int enableRemoteDebugging = 0; /* Global so gdb can set before download */
static void
initRemoteGdb(int ticksPerSecond)
{
if (enableRemoteDebugging) {
init_remote_gdb();
rtems_task_wake_after(ticksPerSecond);
breakpoint();
else {
errlogPrintf ("Startup.\n");
}
}
#endif
/*
***********************************************************************
@@ -191,30 +129,32 @@ mustMalloc(int size, const char *msg)
static int
initialize_local_filesystem(const char **argv)
{
extern char _DownloadLocation[] __attribute__((weak));
extern char _FlashBase[] __attribute__((weak));
extern char _FlashSize[] __attribute__((weak));
argv[0] = rtems_bsdnet_bootp_boot_file_name;
if (_FlashSize && (_DownloadLocation || _FlashBase)) {
extern char _edata[];
size_t flashIndex = _edata - _DownloadLocation;
char *header = _FlashBase + flashIndex;
#if defined(__mcf528x__)
extern char _DownloadLocation[], _edata[], _FlashBase[], _FlashSize[];
unsigned long flashIndex = _edata - _DownloadLocation;
char *header;
header = _FlashBase + flashIndex;
if (memcmp(header + 257, "ustar ", 8) == 0) {
int fd;
printf ("***** Unpack in-memory file system (IMFS) *****\n");
if (rtems_tarfs_load("/", header, (unsigned long)_FlashSize - flashIndex) != 0) {
printf("Can't unpack tar filesystem\n");
return 0;
if (memcmp(header + 257, "ustar ", 8) == 0) {
int fd;
printf ("***** Unpack in-memory file system (IMFS) *****\n");
if (rtems_tarfs_load("/", (unsigned char *)header, (size_t)_FlashSize - flashIndex) != 0) {
printf("Can't unpack tar filesystem\n");
return 0;
}
if ((fd = open(rtems_bsdnet_bootp_cmdline, 0)) >= 0) {
close(fd);
printf ("***** Found startup script (%s) in IMFS *****\n", rtems_bsdnet_bootp_cmdline);
argv[1] = rtems_bsdnet_bootp_cmdline;
return 1;
}
printf ("***** Startup script (%s) not in IMFS *****\n", rtems_bsdnet_bootp_cmdline);
}
if ((fd = open(rtems_bsdnet_bootp_cmdline, 0)) >= 0) {
close(fd);
printf ("***** Found startup script (%s) in IMFS *****\n", rtems_bsdnet_bootp_cmdline);
argv[1] = rtems_bsdnet_bootp_cmdline;
return 1;
}
printf ("***** Startup script (%s) not in IMFS *****\n", rtems_bsdnet_bootp_cmdline);
}
#endif
return 0;
}
@@ -491,9 +431,6 @@ Init (rtems_task_argument ignored)
/*
* Architecture-specific hooks
*/
#if defined(__i386__)
initRemoteGdb(ticksPerSecond);
#endif
if (rtems_bsdnet_config.bootp == NULL) {
extern void setBootConfigFromNVRAM(void);
setBootConfigFromNVRAM();

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -1133,13 +1133,13 @@ void cac::selfTest (
void cac::destroyIIU ( tcpiiu & iiu )
{
{
epicsGuard < epicsMutex > cbGuard ( this->cbMutex );
callbackManager mgr ( this->notify, this->cbMutex );
epicsGuard < epicsMutex > guard ( this->mutex );
this->iiuUninstallInProgress = true;
if ( iiu.channelCount ( guard ) ) {
char hostNameTmp[64];
iiu.getHostName ( guard, hostNameTmp, sizeof ( hostNameTmp ) );
genLocalExcep ( cbGuard, guard, *this, ECA_DISCONN, hostNameTmp );
genLocalExcep ( mgr.cbGuard, guard, *this, ECA_DISCONN, hostNameTmp );
}
osiSockAddr addr = iiu.getNetworkAddress ( guard );
if ( addr.sa.sa_family == AF_INET ) {
@@ -1151,7 +1151,7 @@ void cac::destroyIIU ( tcpiiu & iiu )
}
assert ( this->pudpiiu );
iiu.disconnectAllChannels ( cbGuard, guard, *this->pudpiiu );
iiu.disconnectAllChannels ( mgr.cbGuard, guard, *this->pudpiiu );
this->serverTable.remove ( iiu );
this->circuitList.remove ( iiu );

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -15,6 +15,8 @@
#ifndef INCdbFldTypesh
#define INCdbFldTypesh 1
#include "shareLib.h"
#ifdef __cplusplus
extern "C" {
#endif
@@ -45,10 +47,9 @@ typedef struct mapdbfType{
dbfType value;
}mapdbfType;
#ifndef DBFLDTYPES_GBLSOURCE
extern mapdbfType pamapdbfType[];
#else
mapdbfType pamapdbfType[DBF_NTYPES] = {
epicsShareExtern mapdbfType pamapdbfType[];
#ifdef DBFLDTYPES_GBLSOURCE
epicsShareDef mapdbfType pamapdbfType[DBF_NTYPES] = {
{"DBF_STRING",DBF_STRING},
{"DBF_CHAR",DBF_CHAR},
{"DBF_UCHAR",DBF_UCHAR},

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -22,7 +22,6 @@
#define GUIGROUPS_GBLSOURCE
#define SPECIAL_GBLSOURCE
#include "dbDefs.h"
#include "dbFldTypes.h"
#include "epicsPrint.h"
#include "errlog.h"
#include "ellLib.h"
@@ -36,6 +35,7 @@
#define epicsExportSharedSymbols
#include "link.h"
#include "dbFldTypes.h"
#include "devSup.h"
#include "drvSup.h"
#include "special.h"

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -137,9 +137,8 @@ SRCS += adjustment.c
SRCS += cantProceed.c
SRCS += epicsConvert.c
SRCS += epicsExit.c
SRCS += epicsScanReal.c
SRCS += epicsStdlib.c
SRCS += epicsString.c
SRCS += epicsStrtod.c
SRCS += truncateFile.c
SRCS += ipAddrToAsciiAsynchronous.cpp
@@ -306,7 +305,7 @@ errSymTbl.c: $(ERR_S_FILES) $(LIBCOM)/error/makeStatTbl.pl
$(PERL) $(LIBCOM)/error/makeStatTbl.pl $(ERR_S_FILES)
$(COMMON_DIR)/epicsVersion.h: $(CONFIG)/CONFIG_BASE_VERSION
$(PERL) $(LIBCOM)/misc/makeEpicsVersion.pl $(CONFIG)/CONFIG_BASE_VERSION $(@D)
$(PERL) $(LIBCOM)/misc/makeEpicsVersion.pl $(CONFIG)/CONFIG_BASE_VERSION $(@D) $(EPICS_SITE_VERSION)
clean::
@$(RM) errSymTbl.c envData.c

View File

@@ -23,7 +23,7 @@
#define epicsExportSharedSymbols
#include "adjustment.h"
epicsShareFunc size_t epicsShareAPI adjustToWorstCaseAlignment(size_t size)
epicsShareFunc size_t adjustToWorstCaseAlignment(size_t size)
{
int align_size, adjust;
struct test_long_word { char c; long lw; };

View File

@@ -17,7 +17,7 @@
extern "C" {
#endif
epicsShareFunc size_t epicsShareAPI adjustToWorstCaseAlignment(size_t size);
epicsShareFunc size_t adjustToWorstCaseAlignment(size_t size);
#ifdef __cplusplus
}

View File

@@ -22,7 +22,7 @@
#include "cantProceed.h"
#include "epicsThread.h"
epicsShareFunc void * epicsShareAPI callocMustSucceed(size_t count, size_t size, const char *errorMessage)
epicsShareFunc void * callocMustSucceed(size_t count, size_t size, const char *errorMessage)
{
void *mem = calloc(count,size);
if(mem==0) {
@@ -33,7 +33,7 @@ epicsShareFunc void * epicsShareAPI callocMustSucceed(size_t count, size_t size,
return(mem);
}
epicsShareFunc void * epicsShareAPI mallocMustSucceed(size_t size, const char *errorMessage)
epicsShareFunc void * mallocMustSucceed(size_t size, const char *errorMessage)
{
void *mem = malloc(size);
if(mem==0) {
@@ -44,7 +44,7 @@ epicsShareFunc void * epicsShareAPI mallocMustSucceed(size_t size, const char *e
return(mem);
}
epicsShareFunc void epicsShareAPI cantProceed(const char *errorMessage)
epicsShareFunc void cantProceed(const char *errorMessage)
{
if(errorMessage) errlogPrintf("fatal error: %s\n",errorMessage);
else errlogPrintf("fatal error\n");

View File

@@ -18,9 +18,9 @@
extern "C" {
#endif
epicsShareFunc void epicsShareAPI cantProceed(const char *errorMessage);
epicsShareFunc void * epicsShareAPI callocMustSucceed(size_t count, size_t size, const char *errorMessage);
epicsShareFunc void * epicsShareAPI mallocMustSucceed(size_t size, const char *errorMessage);
epicsShareFunc void cantProceed(const char *errorMessage);
epicsShareFunc void * callocMustSucceed(size_t count, size_t size, const char *errorMessage);
epicsShareFunc void * mallocMustSucceed(size_t size, const char *errorMessage);
#ifdef __cplusplus
}

View File

@@ -17,7 +17,7 @@
#include "epicsConvert.h"
#include "cantProceed.h"
epicsShareFunc float epicsShareAPI epicsConvertDoubleToFloat(double value)
epicsShareFunc float epicsConvertDoubleToFloat(double value)
{
float rtnvalue;
@@ -31,7 +31,7 @@ epicsShareFunc float epicsShareAPI epicsConvertDoubleToFloat(double value)
} else if(abs<=FLT_MIN) {
if(value>0.0) rtnvalue = FLT_MIN; else rtnvalue = -FLT_MIN;
} else {
rtnvalue = value;
rtnvalue = (float)value;
}
}
return rtnvalue;

View File

@@ -15,7 +15,7 @@
extern "C" {
#endif
epicsShareFunc float epicsShareAPI epicsConvertDoubleToFloat(double value);
epicsShareFunc float epicsConvertDoubleToFloat(double value);
#ifdef __cplusplus
}

View File

@@ -1,41 +0,0 @@
/*************************************************************************\
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
* National Laboratory.
* Copyright (c) 2002 The Regents of the University of California, as
* Operator of Los Alamos National Laboratory.
* EPICS BASE Versions 3.13.7
* and higher are distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*epicsScanReal.c*/
/*Author: Eric Norum */
#define epicsExportSharedSymbols
#include <epicsStdlib.h>
#include "epicsStdio.h"
epicsShareFunc int epicsShareAPI epicsScanDouble(const char *str, double *dest)
{
char *endp;
double dtmp;
dtmp = epicsStrtod(str, &endp);
if (endp == str)
return 0;
*dest = dtmp;
return 1;
}
epicsShareFunc int epicsShareAPI epicsScanFloat(const char *str, float *dest)
{
char *endp;
double dtmp;
dtmp = epicsStrtod(str, &endp);
if (endp == str)
return 0;
*dest = dtmp;
return 1;
}

View File

@@ -7,7 +7,7 @@
* and higher are distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*epicsStrtod.c*/
/*epicsStdlib.c*/
/*Author: Eric Norum */
#include <ctype.h>
@@ -15,14 +15,37 @@
#include <stdio.h>
#define epicsExportSharedSymbols
#include "epicsString.h"
#include "epicsStdlib.h"
#include "epicsString.h"
#ifdef epicsStrtod
# undef epicsStrtod
#endif
epicsShareFunc double epicsShareAPI epicsStrtod(
epicsShareFunc int epicsScanDouble(const char *str, double *dest)
{
char *endp;
double dtmp;
dtmp = epicsStrtod(str, &endp);
if (endp == str)
return 0;
*dest = dtmp;
return 1;
}
epicsShareFunc int epicsScanFloat(const char *str, float *dest)
{
char *endp;
double dtmp;
dtmp = epicsStrtod(str, &endp);
if (endp == str)
return 0;
*dest = dtmp;
return 1;
}
/* Systems with a working strtod() just #define epicsStrtod strtod */
#ifndef epicsStrtod
epicsShareFunc double epicsStrtod(
const char *str, char **endp)
{
const char *cp = str;
@@ -64,3 +87,4 @@ epicsShareFunc double epicsShareAPI epicsStrtod(
*endp = (char *)cp;
return num / den;
}
#endif

View File

@@ -16,8 +16,8 @@
extern "C" {
#endif
epicsShareFunc int epicsShareAPI epicsScanDouble(const char *str, double *dest);
epicsShareFunc int epicsShareAPI epicsScanFloat(const char *str, float *dest);
epicsShareFunc int epicsScanDouble(const char *str, double *dest);
epicsShareFunc int epicsScanFloat(const char *str, float *dest);
#include <stdlib.h>
#include <osdStrtod.h>

View File

@@ -8,7 +8,7 @@
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*epicsString.c*/
/*Authors: Jun-ichi Odagiri and Marty Kraimer*/
/*Authors: Jun-ichi Odagiri, Marty Kraimer, Eric Norum, Mark Rivers*/
#include <stdlib.h>
#include <stdio.h>
@@ -22,7 +22,7 @@
#include "cantProceed.h"
#include "epicsString.h"
epicsShareFunc int epicsShareAPI dbTranslateEscape(char *to, const char *from)
epicsShareFunc int dbTranslateEscape(char *to, const char *from)
{
const char *pfrom = from;
char *pto = to;
@@ -48,7 +48,7 @@ epicsShareFunc int epicsShareAPI dbTranslateEscape(char *to, const char *from)
{
int i;
char strval[4] = {0,0,0,0};
int ival;
unsigned int ival;
unsigned char *pchar;
for(i=0; i<3; i++) {
@@ -64,7 +64,7 @@ epicsShareFunc int epicsShareAPI dbTranslateEscape(char *to, const char *from)
{
int i;
char strval[3] = {0,0,0};
int ival;
unsigned int ival;
unsigned char *pchar;
pfrom++; /*skip the x*/
@@ -88,7 +88,7 @@ epicsShareFunc int epicsShareAPI dbTranslateEscape(char *to, const char *from)
return(nto);
}
epicsShareFunc int epicsShareAPI epicsStrCaseCmp(
epicsShareFunc int epicsStrCaseCmp(
const char *s1, const char *s2)
{
int nexts1,nexts2;
@@ -106,14 +106,14 @@ epicsShareFunc int epicsShareAPI epicsStrCaseCmp(
}
}
epicsShareFunc int epicsShareAPI epicsStrnCaseCmp(
epicsShareFunc int epicsStrnCaseCmp(
const char *s1, const char *s2, int n)
{
size_t ind = 0;
int nexts1,nexts2;
while(1) {
if(ind++ >= n) break;
if(ind++ >= (size_t)n) break;
/* vxWorks implementation expands argument more than once!!! */
nexts1 = toupper(*s1);
nexts2 = toupper(*s2);
@@ -127,12 +127,12 @@ epicsShareFunc int epicsShareAPI epicsStrnCaseCmp(
return(0);
}
epicsShareFunc char * epicsShareAPI epicsStrDup(const char *s)
epicsShareFunc char * epicsStrDup(const char *s)
{
return strcpy(mallocMustSucceed(strlen(s)+1,"epicsStrDup"),s);
}
epicsShareFunc int epicsShareAPI epicsStrPrintEscaped(
epicsShareFunc int epicsStrPrintEscaped(
FILE *fp, const char *s, int n)
{
int nout=0;
@@ -162,7 +162,7 @@ epicsShareFunc int epicsShareAPI epicsStrPrintEscaped(
return nout;
}
epicsShareFunc int epicsShareAPI epicsStrSnPrintEscaped(
epicsShareFunc int epicsStrSnPrintEscaped(
char *outbuf, int outsize, const char *inbuf, int inlen)
{
int maxout = outsize;
@@ -205,7 +205,7 @@ epicsShareFunc int epicsShareAPI epicsStrSnPrintEscaped(
return nout;
}
epicsShareFunc int epicsShareAPI epicsStrGlobMatch(
epicsShareFunc int epicsStrGlobMatch(
const char *str, const char *pattern)
{
const char *cp=NULL, *mp=NULL;
@@ -236,3 +236,49 @@ epicsShareFunc int epicsShareAPI epicsStrGlobMatch(
pattern++;
return !*pattern;
}
epicsShareFunc char * epicsStrtok_r(char *s, const char *delim, char **lasts)
{
char *spanp;
int c, sc;
char *tok;
if (s == NULL && (s = *lasts) == NULL)
return (NULL);
/*
* Skip (span) leading delimiters (s += strspn(s, delim), sort of).
*/
cont:
c = *s++;
for (spanp = (char *)delim; (sc = *spanp++) != 0;) {
if (c == sc)
goto cont;
}
if (c == 0) { /* no non-delimiter characters */
*lasts = NULL;
return (NULL);
}
tok = s - 1;
/*
* Scan token (scan for delimiters: s += strcspn(s, delim), sort of).
* Note that delim must have one NUL; we stop if we see that, too.
*/
for (;;) {
c = *s++;
spanp = (char *)delim;
do {
if ((sc = *spanp++) == c) {
if (c == 0)
s = NULL;
else
s[-1] = 0;
*lasts = s;
return (tok);
}
} while (sc != 0);
}
}

View File

@@ -8,7 +8,7 @@
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*epicsString.h*/
/*Authors: Jun-ichi Odagiri and Marty Kraimer*/
/*Authors: Jun-ichi Odagiri, Marty Kraimer, Eric Norum, Mark Rivers*/
/* int dbTranslateEscape(char *s,const char *ct);
*
@@ -22,16 +22,18 @@
extern "C" {
#endif
epicsShareFunc int epicsShareAPI dbTranslateEscape(char *s,const char *ct);
epicsShareFunc int epicsShareAPI epicsStrCaseCmp(const char *s1,const char *s2);
epicsShareFunc int epicsShareAPI epicsStrnCaseCmp(const char *s1,const char *s2, int n);
epicsShareFunc char * epicsShareAPI epicsStrDup(const char *s);
epicsShareFunc int epicsShareAPI epicsStrPrintEscaped(
epicsShareFunc int dbTranslateEscape(char *s,const char *ct);
epicsShareFunc int epicsStrCaseCmp(const char *s1,const char *s2);
epicsShareFunc int epicsStrnCaseCmp(const char *s1,const char *s2, int n);
epicsShareFunc char * epicsStrDup(const char *s);
epicsShareFunc int epicsStrPrintEscaped(
FILE *fp, const char *s, int n);
epicsShareFunc int epicsShareAPI epicsStrSnPrintEscaped(
epicsShareFunc int epicsStrSnPrintEscaped(
char *outbuf, int outsize, const char *inbuf, int inlen);
epicsShareFunc int epicsShareAPI epicsStrGlobMatch(
epicsShareFunc int epicsStrGlobMatch(
const char *str, const char *pattern);
epicsShareFunc char * epicsStrtok_r(
char *s, const char *delim, char **lasts);
#ifdef __cplusplus
}

View File

@@ -8,47 +8,53 @@
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
#
# Usage: perl makeEpicsVersion.pl CONFIG_BASE_VERSION outdir
print "Building epicsVersion.h from CONFIG_BASE_VERSION\n";
($infile, $outdir, $site_ver) = @ARGV;
die unless $#ARGV==1;
die "Usage: perl makeEpicsVersion.pl CONFIG_BASE_VERSION outdir siteversion"
unless ($infile && $outdir);
open VARS, $ARGV[0] or die "Cannot get variables from $ARGV[0]";
print "Building epicsVersion.h from $infile\n";
open VARS, $infile or die "Can't open $infile: $!\n";
while (<VARS>)
{
s/\s+$//; # remove trailing white space and carriage return
if (/EPICS_VERSION=(.*)/) { $ver = $1; }
if (/EPICS_REVISION=(.*)/) { $rev = $1; }
if (/EPICS_MODIFICATION=(.*)/) { $mod = $1; }
if (/EPICS_UPDATE_NAME=(.*)/) { $upd_name = $1; }
if (/EPICS_UPDATE_LEVEL=(.*)/) { $upd_level = $1; }
if (/CVS_DATE="\\(.*)"/) { $cvs_date = $1; }
if (/CVS_TAG="\\(.*)"/) { $cvs_tag = $1; }
chomp;
next if m/^#/; # Skip comments
if (m/^EPICS_VERSION\s*=\s*(\d+)/) { $ver = $1; }
if (m/^EPICS_REVISION\s*=\s*(\d+)/) { $rev = $1; }
if (m/^EPICS_MODIFICATION\s*=\s*([0-9a-z]+)/) { $mod = $1; }
if (m/^EPICS_PATCH_LEVEL\s*=\s*(\d+)/) { $patch = $1; }
if (m/^EPICS_CVS_SNAPSHOT\s*=\s*([CVS-]+)/) { $snapshot = $1; }
if (m/^CVS_DATE\s*=\s*"\\(.*)"/) { $cvs_date = $1; }
if (m/^CVS_TAG\s*=\s*"\\(.*)"/) { $cvs_tag = $1; }
}
$ver_str = "$ver.$rev.$mod";
$ver_str = "$ver_str.$upd_name" if $upd_name;
$ver_str = "$ver_str.$upd_level" if $upd_level;
$ver_str .= ".$patch" if $patch > 0;
$ver_str .= $snapshot if $snapshot ne '';
$ver_str .= "-$site_ver" if $site_ver;
print "Found EPICS Version $ver_str\n";
$dir = $ARGV[1];
$epicsVersion="$dir/epicsVersion.h";
$epicsVersion="$outdir/epicsVersion.h";
mkdir ($dir, 0777) unless -d $dir;
mkdir ($outdir, 0777) unless -d $outdir;
open OUT, "> $epicsVersion" or die "Cannot create $epicsVersion";
open OUT, "> $epicsVersion" or die "Cannot create $epicsVersion: $!\n";
print OUT "#define EPICS_VERSION $ver\n";
print OUT "#define EPICS_REVISION $rev\n";
print OUT "#define EPICS_MODIFICATION $mod\n";
print OUT "#define EPICS_UPDATE_NAME $upd_name\n";
print OUT "#define EPICS_UPDATE_LEVEL $upd_level\n";
print OUT "#define EPICS_PATCH_LEVEL $patch\n";
print OUT "#define EPICS_CVS_SNAPSHOT \"$snapshot\"\n";
print OUT "#define EPICS_SITE_VERSION \"$site_ver\"\n";
print OUT "#define EPICS_VERSION_STRING \"EPICS $ver_str\"\n";
print OUT "#define epicsReleaseVersion \"EPICS R$ver_str $cvs_tag $cvs_date\"\n";
print OUT "\n";
print OUT "/* EPICS_UPDATE_LEVEL is deprecated, use EPICS_PATCH_LEVEL instead */\n";
print OUT "#define EPICS_UPDATE_LEVEL $patch\n";
close OUT;

View File

@@ -25,7 +25,7 @@
* truncate to specified size (we dont use truncate()
* because it is not portable)
*/
epicsShareFunc enum TF_RETURN epicsShareAPI truncateFile (const char *pFileName, unsigned size)
epicsShareFunc enum TF_RETURN truncateFile (const char *pFileName, unsigned size)
{
char tmpName[256>L_tmpnam?256:L_tmpnam];
long filePos;

View File

@@ -41,7 +41,7 @@ epicsShareFunc FILE * epicsShareAPI epicsTempFile ();
* TF_ERROR if the file could not be truncated.
*/
enum TF_RETURN {TF_OK=0, TF_ERROR=1};
epicsShareFunc enum TF_RETURN epicsShareAPI truncateFile ( const char *pFileName, unsigned size );
epicsShareFunc enum TF_RETURN truncateFile ( const char *pFileName, unsigned size );
/* The following are for redirecting stdin,stdout,stderr */
epicsShareFunc FILE * epicsShareAPI epicsGetStdin(void);

View File

@@ -12,4 +12,4 @@
/*
* epicsStrtod() for systems with broken strtod() routine
*/
epicsShareFunc double epicsShareAPI epicsStrtod(const char *str, char **endp);
epicsShareFunc double epicsStrtod(const char *str, char **endp);

View File

@@ -186,21 +186,6 @@ void epicsThreadExitMain (void)
{
}
/*
* Report initialization failures
*/
static void
badInit (const char *msg)
{
const char fmt[] = "%s called before epicsThreadInit finished!";
syslog (LOG_CRIT, fmt, msg);
/* may not be safe to call epicsGetStderr */
fprintf (stderr, fmt, msg);
fprintf (stderr, "\n");
rtems_task_suspend (RTEMS_SELF);
}
static void
setThreadInfo (rtems_id tid, const char *name, EPICSTHREADFUNC funptr,void *parm)
{
@@ -417,21 +402,40 @@ const char *epicsThreadGetNameSelf(void)
void epicsThreadGetName (epicsThreadId id, char *name, size_t size)
{
rtems_id tid = (rtems_id)id;
rtems_status_code sc;
rtems_unsigned32 note;
struct taskVar *v;
int haveName = 0;
if (size <= 0)
return;
taskVarLock ();
sc = rtems_task_get_note (tid, RTEMS_NOTEPAD_TASKVAR, &note);
if (sc == RTEMS_SUCCESSFUL) {
v = (void *)note;
strncpy (name, v->name, size - 1);
name[size-1] = '\0';
}
else {
*name = '\0';
for (v=taskVarHead ; v != NULL ; v=v->forw) {
if (v->id == tid) {
strncpy(name, v->name, size);
haveName = 1;
break;
}
}
taskVarUnlock ();
if (!haveName) {
/*
* Try to get the RTEMS task name
*/
Thread_Control *thr;
Objects_Locations l;
if ((thr=_Thread_Get(tid, &l)) != NULL) {
if (OBJECTS_LOCAL == l) {
Objects_Information *oi;
oi = _Objects_Get_information(tid);
_Objects_Copy_name_raw( &thr->Object.name, name,
size > oi->name_length ? oi->name_length : size);
haveName = 1;
}
_Thread_Enable_dispatch();
}
}
if (!haveName)
snprintf(name, size, "0x%lx", (long)tid);
name[size-1] = '\0';
}
epicsThreadId epicsThreadGetId (const char *name)

View File

@@ -12,4 +12,4 @@
/*
* epicsStrtod() for systems with broken strtod() routine
*/
epicsShareFunc double epicsShareAPI epicsStrtod(const char *str, char **endp);
epicsShareFunc double epicsStrtod(const char *str, char **endp);

View File

@@ -12,4 +12,4 @@
/*
* epicsStrtod() for systems with broken strtod() routine
*/
epicsShareFunc double epicsShareAPI epicsStrtod(const char *str, char **endp);
epicsShareFunc double epicsStrtod(const char *str, char **endp);

View File

@@ -12,4 +12,4 @@
/*
* epicsStrtod() for systems with broken strtod() routine
*/
epicsShareFunc double epicsShareAPI epicsStrtod(const char *str, char **endp);
epicsShareFunc double epicsStrtod(const char *str, char **endp);

View File

@@ -12,4 +12,4 @@
/*
* epicsStrtod() for systems with broken strtod() routine
*/
epicsShareFunc double epicsShareAPI epicsStrtod(const char *str, char **endp);
epicsShareFunc double epicsStrtod(const char *str, char **endp);

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@@ -2,8 +2,8 @@
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_UPDATE_LEVEL
FILEVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
PRODUCTVERSION EPICS_VERSION,EPICS_REVISION,EPICS_MODIFICATION,EPICS_PATCH_LEVEL
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L