Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e9b49d233b | ||
|
|
16e0409813 | ||
|
|
10c03d3e19 | ||
|
|
7aa6a2ca98 | ||
|
|
705d8ccf98 | ||
|
|
ae27b2ad0e | ||
|
|
8d3dc9eb33 | ||
|
|
1e821d866e | ||
|
|
03bf89c7c2 | ||
|
|
b01b09240c | ||
|
|
e0887d197e | ||
|
|
3191b9b404 | ||
|
|
147e21b71f | ||
|
|
c57beaad68 | ||
|
|
45685c52d2 | ||
|
|
00d8ae7d79 | ||
|
|
d9184abd62 | ||
|
|
66fbc8b27c | ||
|
|
a65943481d | ||
|
|
09ea15376f | ||
|
|
de797d11e2 | ||
|
|
6e09e17a23 | ||
|
|
a0e61daaac | ||
|
|
5506587d06 | ||
|
|
225f816f0e | ||
|
|
cdda915248 | ||
|
|
1a1c4dceb0 | ||
|
|
b283cb1fcd | ||
|
|
3499fbe51d | ||
|
|
bd14b17c94 |
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 =
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 = <name>Include.dbd </blockquote>
|
||||
DBDEXPAND = <name>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=<name>.h </blockquote>
|
||||
RECTYPES=<name>.h</blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
DBDINC+=<name> </blockquote>
|
||||
DBDINC+=<name></blockquote>
|
||||
change
|
||||
|
||||
<blockquote>
|
||||
MENUS=<name>.h </blockquote>
|
||||
MENUS=<name>.h</blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
DBDINC+=<name> </blockquote>
|
||||
DBDINC+=<name></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 += <name>_registerRecordDeviceDriver.cpp
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
where <name> is the base name of a <name>.dbd file which was
|
||||
created from a <name>Include.dbd file and which will be loaded in a
|
||||
st.cmd or stcmd.host script (e.g. example).</li>
|
||||
<li>In ./iocBoot/ioc<name>/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 <top>/iocBoot/ioc<name>/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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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; };
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
epicsShareFunc size_t epicsShareAPI adjustToWorstCaseAlignment(size_t size);
|
||||
epicsShareFunc size_t adjustToWorstCaseAlignment(size_t size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
epicsShareFunc float epicsShareAPI epicsConvertDoubleToFloat(double value);
|
||||
epicsShareFunc float epicsConvertDoubleToFloat(double value);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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, ¬e);
|
||||
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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user