Compare commits

...

33 Commits

Author SHA1 Message Date
Janet Anderson
e406440316 R3.14.12-rc1 2010-11-15 13:59:06 -06:00
jba
94a48d23d0 Set HDEPENDS_METHOD to CMD which was overidden by CONFIG.gnuCommon. 2010-11-15 13:43:17 -06:00
jba
cf18208579 Added and removed include files. 2010-11-15 11:27:17 -06:00
Janet Anderson
7cf01b091b Removed unneeded include line. 2010-11-15 10:31:16 -06:00
Janet Anderson
e1c1dd45a6 Added include lines for host build CONFIG_SITE files. 2010-11-14 19:49:17 -06:00
Janet Anderson
8e40be47a0 Removed VX_DIR definition- no longer works in CONFIG_SITE.*.Common files. 2010-11-14 19:29:53 -06:00
Andrew Johnson
9777c63e23 documentation: Paragraphs on epicsEvent and Cygwin support. 2010-11-12 16:48:21 -06:00
Andrew Johnson
18594e1a34 subArray: Bugfix, allow array puts to VAL
Fixed a bug reported by Michael Abbott, NORD goes -ve.
Modified soft channel support so when INP="" it extracts the relevent
sub-array of the existing VAL field; use an external put to set the
array. This lets the other records pull a series of values from the
record in sequence.
2010-11-12 16:09:09 -06:00
Janet Anderson
99e7e7727a Provide a link-time path for readline directory.
Remove unneeded READLINE definitions from last commit.
2010-11-11 13:45:09 -06:00
Janet Anderson
adb201a048 Now RUNTIME_LDFLAGS is set here. 2010-11-11 13:43:53 -06:00
Janet Anderson
56ada25dd7 RUNTIME_LDFLAGS now set in CONFIG_COMMON. Use LINKER_USE_RPATH for
readline dir.
2010-11-11 13:41:03 -06:00
Janet
23bbe233f7 Moved COMMANDLINE to CONFIG_SITE.Common.win32-x86-mingw 2010-11-10 16:59:06 -06:00
Janet Anderson
c48fe29e89 Allow arm cross targets to use readline as command line library. 2010-11-10 12:02:20 -06:00
Andrew Johnson
b5c185877d RTEMS: Allow for 64-bit compatibility in RTEMS 4.10. 2010-11-10 09:44:19 -06:00
Janet Anderson
b82db48335 Use win32-x86 values for default values. 2010-11-09 15:37:08 -06:00
Janet Anderson
da8ae994e4 Initial version. 2010-11-09 15:12:20 -06:00
Janet Anderson
8d2cd8b96c Updated to match extensions/configure. 2010-11-09 14:55:13 -06:00
Janet Anderson
91631919e5 Minor changes. 2010-11-09 08:32:36 -06:00
Janet Anderson
181c4e126a Added includes for CONFIG_SITE files for hostarch. 2010-11-08 08:18:58 -06:00
Janet Anderson
32ebff1881 Removed OPT flag lines which are same as gnu compiler build defaults. 2010-11-08 08:16:12 -06:00
Ralph Lange
e65253f8b9 ca: Minor fix in CA Reference Manual 2010-11-05 15:57:34 -04:00
Ralph Lange
3398950f9d ca: Added chapter about firewalls to CA Reference Manual 2010-11-05 15:41:39 -04:00
Andrew Johnson
2477bf52e6 libCom: Cygwin socket unblocking again...
It helps to include the cygwin header file that
actually has the version number in it...
2010-11-04 14:24:13 -05:00
Andrew Johnson
e7179fc289 libCom: Fix cygwin socket shutdown issue.
Cygwin 1.7 changed the socket shutdown method from BothShutdown
to Close. This fix looks at the cygwin version to work out what
value to return from esscimqi().
2010-11-04 13:30:44 -05:00
Jeff Hill
f340b3e153 o removed -O3 from mingw debug builds (so the issues below are reproduced on mingw)
o gnu compiler for windows doesnt support well dll exporting individual functions from a class
in debug builds so I switched to exporting the entire interface class in several places
o fixed several places in ca lib where include of epicsTimer.h wasnt properly ifdef'd so
that it is imported by ca header files
--- these issues were already fixed on cvs main trunk ---
2010-11-04 10:19:54 -06:00
Andrew Johnson
b4d7b6f851 Merged Jeff's fix for Bug 667384
This commit was needed to reorder the commit history so that everyone
else's commits since 2010-09-27 remain on the mainline.
2010-11-01 18:07:15 -05:00
Jeff Hill
36175b1368 merged in R3.14.12 2010-11-01 15:15:51 -06:00
Jeff Hill
e372a83096 neglected to unlock on error return path 2010-11-01 15:01:04 -06:00
Jeff Hill
3ad06eb0a3 fixed request and response bytes amount was revered in printf 2010-11-01 15:00:02 -06:00
Janet Anderson
93c39c86f7 Added includes for host's CONFIG_SITE files. Changed all to -include. 2010-11-01 14:35:49 -05:00
Andrew Johnson
46b912bc16 cas: Workaround for vxWorks-ppc604 compiler issue. 2010-10-29 12:15:48 -05:00
Andrew Johnson
1e6464cdc4 libCom/test: Various improvements.
Made epicsThreadOnceTest more deterministic, replacing an
epicsThreadSleep() with epicsEventMustWait(), and added a diagnostic
message before running the thread recurse test.

Eric added a series of checks to epicsEventTest.cpp which ensure that
epicsEventSignal() only wakes one waiting thread.
2010-10-29 11:58:44 -05:00
Janet Anderson
c84c3d49ad R3.14.12-pre2-DEV 2010-10-27 17:05:43 -05:00
46 changed files with 323 additions and 64 deletions

View File

@@ -36,9 +36,9 @@ EPICS_PATCH_LEVEL = 0
#EPICS_DEV_SNAPSHOT=-DEV
#EPICS_DEV_SNAPSHOT=-pre1
#EPICS_DEV_SNAPSHOT=-pre1-DEV
EPICS_DEV_SNAPSHOT=-pre2
#EPICS_DEV_SNAPSHOT=-pre2
#EPICS_DEV_SNAPSHOT=-pre2-DEV
#EPICS_DEV_SNAPSHOT=-rc1
EPICS_DEV_SNAPSHOT=-rc1
#EPICS_DEV_SNAPSHOT=-rc1-DEV
#EPICS_DEV_SNAPSHOT=-rc2
#EPICS_DEV_SNAPSHOT=-rc2-DEV

View File

@@ -258,6 +258,7 @@ LOADABLE_SHRLIB_SUFFIX=$(SHRLIB_SUFFIX)
COMMANDLINE_LIBRARY = EPICS
OP_SYS_LDLIBS += $(LDLIBS_$(COMMANDLINE_LIBRARY))
OP_SYS_LDFLAGS += $(LDFLAGS_$(COMMANDLINE_LIBRARY))
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
#--------------------------------------------------
# Flags

View File

@@ -29,4 +29,11 @@ ifeq ($(BUILD_CLASS),CROSS)
# Provide a link-time path for products
PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath-link,%)
PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
# Provide a link-time path for readline
RUNTIME_LDFLAGS_READLINE_YES = -Wl,-rpath-link,$(GNU_DIR)/lib
RUNTIME_LDFLAGS_READLINE = $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
RUNTIME_LDFLAGS_READLINE_CURSES = $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
RUNTIME_LDFLAGS_READLINE_NCURSES = $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
endif

View File

@@ -35,8 +35,6 @@ SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-R%)
PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
GNU_TARGET=sparc-sun-solaris2
STLPORT_CFLAGS_YES= -library=stlport4
@@ -61,9 +59,9 @@ OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(SOLARIS_VERSION))
# Definitions used when COMMANDLINE_LIBRARY is READLINE
READLINE_DIR = $(GNU_DIR)
INCLUDES_READLINE = -I$(READLINE_DIR)/include
RUNTIME_LDFLAGS_READLINE += -R$(READLINE_DIR)/lib
RUNTIME_LDFLAGS_READLINE_YES += -R$(READLINE_DIR)/lib
RUNTIME_LDFLAGS_READLINE += $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
LDFLAGS_READLINE += -L$(READLINE_DIR)/lib
LDLIBS_READLINE = -lreadline -lcurses
# Use archive if there is a problem with the readline shared library
#LDLIBS_READLINE = -Bstatic -lreadline -Bdynamic -lcurses

View File

@@ -36,8 +36,6 @@ SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-R%)
PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
GNU_TARGET=x86-sun-solaris2
STLPORT_CFLAGS_YES= -library=stlport4
@@ -61,7 +59,8 @@ OP_SYS_LDLIBS += $(STLPORT_LDLIBS_$(USE_STLPORT))
# Definitions used when COMMANDLINE_LIBRARY is READLINE
READLINE_DIR = $(GNU_DIR)
INCLUDES_READLINE = -I$(READLINE_DIR)/include
RUNTIME_LDFLAGS_READLINE += -R$(READLINE_DIR)/lib
RUNTIME_LDFLAGS_READLINE_YES += -R$(READLINE_DIR)/lib
RUNTIME_LDFLAGS_READLINE += $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
LDFLAGS_READLINE += -L$(READLINE_DIR)/lib
LDLIBS_READLINE = -lreadline -lcurses
# Use archive if there is a problem with the readline shared library

View File

@@ -7,8 +7,10 @@
# Sites may override these definitions in CONFIG_SITE.cygwin-x86.cygwin-x86-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.Common.cygwin-x86
include $(CONFIG)/os/CONFIG.cygwin-x86.cygwin-x86
-include $(CONFIG)/os/CONFIG.Common.cygwin-x86
-include $(CONFIG)/os/CONFIG.cygwin-x86.cygwin-x86
-include $(CONFIG)/os/CONFIG_SITE.Common.cygwin-x86
-include $(CONFIG)/os/CONFIG_SITE.cygwin-x86.cygwin-x86
BUILD_CLASS = HOST

View File

@@ -9,6 +9,8 @@
-include $(CONFIG)/os/CONFIG.Common.darwin-ppc
-include $(CONFIG)/os/CONFIG.darwin-ppc.darwin-ppc
-include $(CONFIG)/os/CONFIG_SITE.Common.darwin-ppc
-include $(CONFIG)/os/CONFIG_SITE.darwin-ppc.darwin-ppc
BUILD_CLASS=HOST
HOST_OPT = NO

View File

@@ -9,6 +9,9 @@
-include $(CONFIG)/os/CONFIG.Common.darwin-x86
-include $(CONFIG)/os/CONFIG.darwin-x86.darwin-x86
-include $(CONFIG)/os/CONFIG_SITE.Common.darwin-x86
-include $(CONFIG)/os/CONFIG_SITE.darwin-x86.darwin-x86
BUILD_CLASS=HOST
HOST_OPT = NO

View File

@@ -7,8 +7,9 @@
# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-x86-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
-include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
#-include $(CONFIG)/os/CONFIG_SITE.Common.linux-x86
#-include $(CONFIG)/os/CONFIG_SITE.linux-x86.linux-x86
BUILD_CLASS=HOST
HOST_OPT=NO

View File

@@ -7,8 +7,9 @@
# Sites may override these definitions in CONFIG_SITE.linux-x86_64.linux-x86_64-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
-include $(CONFIG)/os/CONFIG.linux-x86_64.linux-x86_64
-include $(CONFIG)/os/CONFIG_SITE.Common.linux-x86_64
-include $(CONFIG)/os/CONFIG_SITE.linux-x86_64.linux-x86_64
BUILD_CLASS=HOST
HOST_OPT = NO

View File

@@ -7,7 +7,9 @@
# Sites may override these definitions in CONFIG_SITE.solaris-sparc.solaris-sparc-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.solaris-sparc.solaris-sparc
-include $(CONFIG)/os/CONFIG.solaris-sparc.solaris-sparc
-include $(CONFIG)/os/CONFIG_SITE.Common.solaris-sparc
-include $(CONFIG)/os/CONFIG_SITE.solaris-sparc.solaris-sparc
BUILD_CLASS=HOST
HOST_OPT=NO

View File

@@ -7,8 +7,10 @@
# Sites may override these definitions in CONFIG_SITE.solaris-x86.solaris-x86-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.Common.solaris-x86
include $(CONFIG)/os/CONFIG.solaris-x86.solaris-x86
-include $(CONFIG)/os/CONFIG.Common.solaris-x86
-include $(CONFIG)/os/CONFIG.solaris-x86.solaris-x86
-include $(CONFIG)/os/CONFIG_SITE.Common.solaris-x86
-include $(CONFIG)/os/CONFIG_SITE.solaris-x86.solaris-x86
BUILD_CLASS=HOST

View File

@@ -26,7 +26,4 @@ LOADABLE_SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
# Override linking with gcc library from CONFIG.gnuCommon
GNU_LDLIBS_YES =
OPT_CFLAGS_NO = -O3 -g
OPT_CXXFLAGS_NO = -O3 -g
OP_SYS_LDLIBS = -lws2_32

View File

@@ -7,8 +7,10 @@
# Sites may override these definitions in CONFIG_SITE.win32-x86-mingw.win32-x86-mingw-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.Common.win32-x86-mingw
include $(CONFIG)/os/CONFIG.win32-x86-mingw.win32-x86-mingw
-include $(CONFIG)/os/CONFIG.Common.win32-x86-mingw
-include $(CONFIG)/os/CONFIG.win32-x86-mingw.win32-x86-mingw
-include $(CONFIG)/os/CONFIG_SITE.Common.win32-x86-mingw
-include $(CONFIG)/os/CONFIG_SITE.win32-x86-mingw.win32-x86-mingw
BUILD_CLASS = HOST

View File

@@ -7,10 +7,14 @@
# Sites may override these definitions in CONFIG_SITE.win32-x86.win32-x86-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.win32-x86-debug.win32-x86-debug
-include $(CONFIG)/os/CONFIG.Common.win32-x86
-include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
-include $(CONFIG)/os/CONFIG_SITE.Common.win32-x86
-include $(CONFIG)/os/CONFIG_SITE.win32-x86.win32-x86
GNU = NO
HDEPENDS_METHOD = CMD
BUILD_CLASS = HOST
HOST_OPT = NO

View File

@@ -7,6 +7,5 @@
# jba overrides
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-486
#VX_DIR = T:/tornado20
BORLAND = c:\\Borland\\Bcc55

View File

@@ -8,5 +8,4 @@
# jba test overrides
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-486
#CROSS_COMPILER_TARGET_ARCHS+=vxWorks-68040
#VX_DIR = T:/tornado20
#INSTALL_LOCATION = G:/testInstall

View File

@@ -172,7 +172,7 @@ exampleIoc_SRCS += devXxxSoft.c
exampleIoc_LIBS += $(EPICS_BASE_IOC_LIBS)
PROD_IOC_vxWorks = example
example_SRCS += sncExample.stt
example_SRCS += sncExample.st
example_LIBS += exampleIoc
example_LIBS += seq pv
example_LIBS += $(EPICS_BASE_IOC_LIBS)
@@ -263,7 +263,7 @@ dev<i>name</i> = { ... };</q></p>
<h3>Registration code changed</h3>
<p>Registration code for application specific functions, e.g. subroutine record
init and process functions, must been changed as follows</p>
init and process functions, must be changed as follows</p>
<ol>
<li>Include the following header files after all existing #includes:
@@ -468,4 +468,9 @@ should add the definition</p>
<p>to your application config/RELEASE file.</p>
</body>
<h3>Optional <i>top</i>/configure/CONFIG_SITE changes.</h3>
<p>Review and optionally modify site build settings.</p>
</html>

View File

@@ -13,11 +13,37 @@
<h2 align="center">Changes between 3.14.11 and 3.14.12</h2>
<!-- Insert new items immediately below here ... -->
<h4>Support for Cygwin 1.7</h4>
<p>Base can now built with shared libraries on Cygwin 1.7.x, although only with
the gcc-3 compiler. Cygwin 1.5.x only works when compiled without shared
libraries (set <tt>STATIC_BUILD=YES</tt> and <tt>SHARED_LIBRARIES=NO</tt> in
<tt>configure/CONFIG_SITE</tt>). There is code in Base now that depends on the
Cygwin version, so make sure that you rebuild Base if you upgrade your Cygwin
installation.</p>
<h4>epicsEvent</h4>
<p>epicsEvent is now explicitly required to act as a simple binary semaphore.
A single epicsEventSignal call must awaken just one thread when multiple
threads are waiting for the event. A test thats checks for this has been
added to epicsEventTest and the application developers guide is being updated
to describe this requirement.</p>
<h4>Enable array puts to subArray records</h4>
<p>It is now possible to put an array into the VAL field of a soft channel
subArray record whose INP field is empty. Processing the record then causes the
sub-array extraction process to be done on the current VAL array. This can be
used to feed a sequence of values into some other record (set INDX=1 and
NELM=MALM and read one element out of the VAL field each time).</p>
<h4>Added windows-x64 target</h4>
<p>64-bit binaries for Microsoft Windows platforms can now be built using the
target architecture windows-x64, which is also a valid cross-build target for a
win32-x86 host. We do not currently support 64-bit MinGW or Cygwin builds.</p>
win32-x86 host. We do not currently support or recommend trying to use 64-bit
builds on MinGW or Cygwin.</p>
<h4>Deleted osf-alpha targets</h4>

View File

@@ -1,8 +1,16 @@
/*************************************************************************\
* Copyright (c) 2008 UChicago Argonne LLC, as Operator of Argonne
* National Laboratory.
* EPICS BASE is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <fcntl.h> /* for open() */
#include <fcntl.h>
#include <unistd.h>
#include <rtems/rtems_bsdnet.h>
#include <bsp.h>
#include <string.h>

View File

@@ -64,6 +64,7 @@ $Date$</span></small></p>
<li><a href="#Network">IP Network Administration Background
Information</a></li>
<li><a href="#port">IP port numbers</a></li>
<li><a href="#firewall">Firewalls</a></li>
<li><a href="#Environmen">WAN Environment</a></li>
<li><a href="#Disconnect">Disconnect Time Out Interval / Server Beacon
Period</a></li>
@@ -451,6 +452,32 @@ different port numbers then an extended syntax may be used with the
EPICS_CA_ADDR_LIST environment variable. See <a href="#Environmen">WAN
Environment</a> below.</p>
<h3><a name="firewall">Firewalls</a></h3>
<p>If you want channel access clients on a machine to be able to see
beacons and replies to broadcast PV search requests you need to permit
inbound UDP packets with source port EPICS_CA_SERVER_PORT (default is 5064)
or destination port EPICS_CA_REPEATER_PORT (default is 5065). On systems
using iptables this can be accomplished by rules like</p>
<pre>
-A INPUT -s 192.168.0.0/22 -p udp --sport 5064 -j ACCEPT
-A INPUT -s 192.168.0.0/22 -p udp --dport 5065 -j ACCEPT
</pre>
<p>If you want channel access servers (e.g. "soft IOCs") on a machine to be
able to see clients you need to permit inbound TCP or UDP packets with source
port EPICS_CA_SERVER_PORT (default is 5064). On systems using iptables this
can be accomplished by rules like</p>
<pre>
-A INPUT -s 192.168.0.0/22 -p udp --dport 5064 -j ACCEPT
-A INPUT -s 192.168.0.0/22 -p tcp --dport 5064 -j ACCEPT
</pre>
<p>In all cases the "-s 192.168.0.0/22" specifies the range of addresses from
which you wish to accept packets.</p>
<h3><a name="Environmen">WAN Environment</a></h3>
<p>When the CA client library connects a channel it must first determine the IP

View File

@@ -360,6 +360,6 @@ void bheFreeStore::release ( void * pCadaver )
freeList.release ( pCadaver );
}
epicsShareFunc bheMemoryManager::~bheMemoryManager () {}
bheMemoryManager::~bheMemoryManager () {}

View File

@@ -45,9 +45,9 @@ class bheMemoryManager;
// using a pure abstract wrapper class around the free list avoids
// Tornado 2.0.1 GNU compiler bugs
class bheMemoryManager {
class epicsShareClass bheMemoryManager {
public:
epicsShareFunc virtual ~bheMemoryManager ();
virtual ~bheMemoryManager ();
virtual void * allocate ( size_t ) = 0;
virtual void release ( void * ) = 0;
};

View File

@@ -28,6 +28,18 @@
#include "epicsTimer.h"
#ifdef epicsExportSharedSymbols
# define repeaterSubscribeTimerh_epicsExportSharedSymbols
# undef epicsExportSharedSymbols
#endif
#include "epicsTimer.h"
#ifdef repeaterSubscribeTimerh_epicsExportSharedSymbols
# define epicsExportSharedSymbols
# include "shareLib.h"
#endif
class epicsMutex;
class cacContextNotify;

View File

@@ -26,8 +26,18 @@
#ifndef tcpRecvWatchdogh
#define tcpRecvWatchdogh
#ifdef epicsExportSharedSymbols
# define tcpRecvWatchdogh_epicsExportSharedSymbols
# undef epicsExportSharedSymbols
#endif
#include "epicsTimer.h"
#ifdef tcpRecvWatchdogh_epicsExportSharedSymbols
# define epicsExportSharedSymbols
# include "shareLib.h"
#endif
class tcpiiu;
class tcpRecvWatchdog : private epicsTimerNotify {

View File

@@ -26,8 +26,19 @@
#ifndef tcpSendWatchdogh
#define tcpSendWatchdogh
#ifdef epicsExportSharedSymbols
# define tcpSendWatchdogh_epicsExportSharedSymbols
# undef epicsExportSharedSymbols
#endif
#include "epicsTimer.h"
#ifdef tcpSendWatchdogh_epicsExportSharedSymbols
# define epicsExportSharedSymbols
# include "shareLib.h"
#endif
class tcpSendWatchdog : private epicsTimerNotify {
public:
tcpSendWatchdog (

View File

@@ -73,6 +73,13 @@ LIBSRCS += casDGIntfIO.cc
LIBSRCS += casStreamIO.cc
LIBSRCS += ipIgnoreEntry.cc
# There is a bug in some vxWorks compilers that these work around:
ifeq ($(VX_GNU_VERSION), 4.1.2)
casStreamOS_CXXFLAGS_vxWorks-ppc604_altivec = -O0
casStreamOS_CXXFLAGS_vxWorks-ppc604_long = -O0
casStreamOS_CXXFLAGS_vxWorks-ppc604 = -O0
endif
LIBSRCS_vxWorks += templateInstances.cpp
LIBRARY = cas

View File

@@ -72,15 +72,24 @@ static long read_sa(subArrayRecord *prec)
if (nRequest > prec->malm)
nRequest = prec->malm;
dbGetLink(&prec->inp, prec->ftvl, prec->bptr, 0, &nRequest);
prec->nord = ecount = nRequest - prec->indx;
if (prec->inp.type == CONSTANT)
nRequest = prec->nord;
else
dbGetLink(&prec->inp, prec->ftvl, prec->bptr, 0, &nRequest);
ecount = nRequest - prec->indx;
if (ecount > 0) {
int esize = dbValueSize(prec->ftvl);
if (ecount > prec->nelm)
ecount = prec->nelm;
memmove(prec->bptr, (char *)prec->bptr + prec->indx * esize,
ecount * esize);
}
} else
ecount = 0;
prec->nord = ecount;
if (nRequest > 0 &&
prec->tsel.type == CONSTANT &&

View File

@@ -0,0 +1,30 @@
/*************************************************************************\
* 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.
\*************************************************************************/
/* $Revision-Id$ */
/*
* Author: Jeff Hill
*/
#include <cygwin/version.h>
#define epicsExportSharedSymbols
#include "osiSock.h"
enum epicsSocketSystemCallInterruptMechanismQueryInfo
epicsSocketSystemCallInterruptMechanismQuery ()
{
#if (CYGWIN_VERSION_DLL_MAJOR >= 1007)
// Behaviour changed in Cygwin 1.7 release.
return esscimqi_socketCloseRequired;
#else
return esscimqi_socketBothShutdownRequired;
#endif
}

View File

@@ -106,6 +106,52 @@ static void producer(void *arg)
testOk(errors == 0, "%s: errors = %d", name, errors);
}
#define SLEEPERCOUNT 3
struct wakeInfo {
epicsEventId event;
epicsMutexId countMutex;
int count;
};
static void sleeper(void *arg)
{
struct wakeInfo *wp = (struct wakeInfo *)arg;
epicsEventMustWait(wp->event);
epicsMutexLock(wp->countMutex);
wp->count++;
epicsMutexUnlock(wp->countMutex);
}
static void eventWakeupTest(void)
{
struct wakeInfo wakeInfo, *wp = &wakeInfo;
int i, c;
wp->event = epicsEventMustCreate(epicsEventEmpty);
wp->countMutex = epicsMutexMustCreate();
wp->count = 0;
for (i = 0 ; i < SLEEPERCOUNT ; i++)
epicsThreadCreate("Sleeper",
epicsThreadPriorityScanHigh,
epicsThreadGetStackSize(epicsThreadStackSmall),
sleeper,
wp);
epicsThreadSleep(0.5);
epicsMutexLock(wp->countMutex);
c = wp->count;
epicsMutexUnlock(wp->countMutex);
testOk(c == 0, "all threads still sleeping");
for (i = 1 ; i <= SLEEPERCOUNT ; i++) {
epicsEventSignal(wp->event);
epicsThreadSleep(0.5);
epicsMutexLock(wp->countMutex);
c = wp->count;
epicsMutexUnlock(wp->countMutex);
testOk(c == i, "%d thread%s awakened, expected %d", c, c == 1 ? "" : "s", i);
}
epicsEventDestroy(wp->event);
epicsMutexDestroy(wp->countMutex);
}
} // extern "C"
static double eventWaitMeasureDelayError( const epicsEventId &id, const double & delay )
@@ -144,7 +190,7 @@ MAIN(epicsEventTest)
epicsEventId event;
int status;
testPlan(11);
testPlan(12+SLEEPERCOUNT);
event = epicsEventMustCreate(epicsEventEmpty);
@@ -200,6 +246,7 @@ MAIN(epicsEventTest)
epicsThreadSleep(1.0);
eventWaitTest();
eventWakeupTest();
return testDone();
}

View File

@@ -22,6 +22,7 @@ epicsThreadOnceId onceFlag = EPICS_THREAD_ONCE_INIT;
epicsThreadOnceId twiceFlag = EPICS_THREAD_ONCE_INIT;
epicsMutexId lock;
epicsEventId go;
epicsEventId done;
int runCount = 0;
int initCount = 0;
@@ -49,6 +50,8 @@ void onceThread(void *ctx)
epicsMutexMustLock(lock);
doneCount++;
if (doneCount == runCount)
epicsEventSignal(done);
epicsMutexUnlock(lock);
}
@@ -79,6 +82,7 @@ MAIN(epicsThreadOnceTest)
testPlan(3 + NUM_ONCE_THREADS);
go = epicsEventMustCreate(epicsEventEmpty);
done = epicsEventMustCreate(epicsEventEmpty);
lock = epicsMutexMustCreate();
for (i = 0; i < NUM_ONCE_THREADS; i++) {
@@ -92,12 +96,13 @@ MAIN(epicsThreadOnceTest)
epicsThreadSleep(0.1);
testOk(runCount == NUM_ONCE_THREADS, "runCount = %d", runCount);
epicsEventSignal(go);
epicsThreadSleep(0.1);
epicsEventSignal(go); /* Use epicsEventBroadcast(go) when available */
epicsEventMustWait(done);
testOk(doneCount == NUM_ONCE_THREADS, "doneCount = %d", doneCount);
testDiag("init was run by %s", initBy);
testDiag("Expecting thread recurse to suspend:");
tid = epicsThreadCreate("recurse", epicsThreadPriorityMedium,
epicsThreadGetStackSize(epicsThreadStackSmall),
recurseThread, 0);

View File

@@ -28,7 +28,7 @@
*/
/* code using a timer must implement epicsTimerNotify */
class epicsTimerNotify {
class epicsShareClass epicsTimerNotify {
public:
enum restart_t { noRestart, restart };
class expireStatus {
@@ -41,13 +41,13 @@ public:
double delay;
};
epicsShareFunc virtual ~epicsTimerNotify () = 0;
virtual ~epicsTimerNotify () = 0;
/* return "noRestart" or "expireStatus ( restart, 30.0 )" */
virtual expireStatus expire ( const epicsTime & currentTime ) = 0;
epicsShareFunc virtual void show ( unsigned int level ) const;
virtual void show ( unsigned int level ) const;
};
class epicsTimer { /* X aCC 655 */
class epicsShareClass epicsTimer { /* X aCC 655 */
public:
/* calls cancel (see warning below) and then destroys the timer */
virtual void destroy () = 0;
@@ -67,7 +67,7 @@ public:
double getExpireDelay ();
virtual void show ( unsigned int level ) const = 0;
protected:
epicsShareFunc virtual ~epicsTimer () = 0; /* protected => delete() must not be called */
virtual ~epicsTimer () = 0; /* protected => delete() must not be called */
};
class epicsTimerQueue { /* X aCC 655 */

View File

@@ -1,5 +1,9 @@
# $Revision-Id$
# You might want to change this to some shared set of rules, e.g.
# RULES=/path/to/epics/support/modules/rules/x-y
RULES=$(EPICS_BASE)
INSTALL_IDLFILE = $(INSTALL)
include $(TOP)/configure/RELEASE
@@ -10,7 +14,7 @@ ifdef T_A
-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
endif
CONFIG=$(EPICS_BASE)/configure
CONFIG=$(RULES)/configure
include $(CONFIG)/CONFIG
# Override for definition in base

View File

@@ -10,6 +10,7 @@
#
-include $(TOP)/configure/os/CONFIG_SITE.Common.Common
-include $(TOP)/configure/os/CONFIG_SITE.win32-x86.win32-x86
# ---------- java definitions
JAVA_DIR=c:/j2sdk1.4.1_01
@@ -29,11 +30,11 @@ IDL = /usr/local/idl
# IDL=$(IDL)/external/rpc is the sun4 version
IDLRPC = $(IDL)/external/rpc.solaris
X11_LIB = c:/cygwin/lib
X11_INC = c:/cygwin/include
#X11_LIB = c:/cygwin/lib
#X11_INC = c:/cygwin/include
MOTIF_LIB = $(X11_LIB)
MOTIF_INC = $(X11_INC)
#MOTIF_LIB = $(X11_LIB)
#MOTIF_INC = $(X11_INC)
OPENWIN =
INTERVIEWS_BIN =

View File

@@ -31,7 +31,8 @@ TK_TCL = /usr/lib
IDL =
#JAVA_DIR=/usr/local/java
JAVA_DIR=/usr/java/j2sdk1.4.1
#JAVA_DIR=/usr/java/j2sdk1.4.1
JAVA_DIR=/usr
JAVA_INC=$(JAVA_DIR)/include
INTERVIEWS_BIN=/usr/local/interviews/bin/O.Linux

View File

@@ -30,7 +30,7 @@ JAVA_DIR=/usr
# Sciplot and XRTgraph used by medm
SCIPLOT=YES
#XRTGRAPH_EXTENSIONS = YES
#XRTGRAPH = /usr/local/xrtgraph
#XRTGRAPH = /usr/local/xrtgraph64
XRTGRAPH_EXTENSIONS =
XRTGRAPH =

View File

@@ -38,10 +38,13 @@ IV_LIB=/usr/local/interviews/lib/O.solaris
WINGZ_INC = /opt/local/Wingz2/incl
WINGZ_LIB = /opt/local/Wingz2/lib
#MATHEMATICA = /usr/local/math
# Define XRTGRAPH_EXTENSIONS = YES only if using XRT/graph 3.x
# and you want the extensions for MEDM
XRTGRAPH_EXTENSIONS = YES
XRTGRAPH = /opt/local/xrtgraph
#XRTGRAPH_EXTENSIONS = YES
#XRTGRAPH = /opt/local/xrtgraph
SCIPLOT = YES
QUESTWIN = /usr/local/questwin
TK_LIB = /opt/local/lib

View File

@@ -10,5 +10,5 @@
# leave the line empty.
#
-include $(TOP)/configure/os/CONFIG_SITE.solaris-sparc.solaris-sparc
-include $(TOP)/configure/os/CONFIG_SITE.solaris-sparc64.solaris-sparc64

View File

@@ -18,3 +18,9 @@ ATLAS_LIB = /usr/local/oag/3rdParty/ATLAS/SunOS_SunUSIII_4/lib
F2C_LIB = /usr/local/oag/3rdParty/F2C/SunOS_SunUSIII_4/lib
CLAPACK_INCLUDE = /usr/local/oag/3rdParty/CLAPACK/SunOS_SunUSIII_4/include
ATLAS_INCLUDE = /usr/local/oag/3rdParty/ATLAS/SunOS_SunUSIII_4/include
# Define XRTGRAPH_EXTENSIONS = YES only if using XRT/graph 3.x
# and you want the extensions for MEDM
#XRTGRAPH_EXTENSIONS =
#XRTGRAPH =
SCIPLOT = YES

View File

@@ -0,0 +1,8 @@
#
# $Revision-Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
-include $(TOP)/configure/os/CONFIG_SITE.solaris-x86.solaris-x86

View File

@@ -86,9 +86,9 @@ QUESTWIN =
# Define XRTGRAPH_EXTENSIONS = YES only if using XRT/graph 3.x
# and you want the extensions for MEDM
XRTGRAPH_EXTENSIONS = NO
XRTGRAPH =
# Define SCIPLOT if you don't have XRT/graph
#SCIPLOT = YES
#XRTGRAPH =
SCIPLOT = YES
# z library created in SDDS extension
ZLIB_CFLAG = -DzLib
@@ -98,8 +98,7 @@ z_DIR = $(EPICS_EXTENSIONS_LIB)
CLAPACK_INCLUDE = c:/CLAPACK/include
CLAPACK_LIB = c:/CLAPACK/lib
EXCEED = Exceed7.10
EXCEED = Exceed13.0
ifeq ($(EXCEED),Exceed5)
X11_LIB = c:/exceed5/xdk/lib
@@ -191,6 +190,18 @@ ifeq ($(EXCEED),Exceed12.0)
HCLXmu_DIR=$(X11_LIB)
EXCEED_CFLAGS=/DXMSTATIC /DMOTIFAPP
endif
ifeq ($(EXCEED),Exceed13.0)
XDK=C:/Exceed13.0/XDK
X11_LIB = $(XDK)/lib
X11_INC = $(XDK)/include
EXCEED_XLIBS=XmStatic XmStatXt Xlib HCLXmu
XmStatic_DIR=$(X11_LIB)
XmStatXt_DIR=$(X11_LIB)
Xlib_DIR=$(X11_LIB)
HCLXmu_DIR=$(X11_LIB)
EXCEED_CFLAGS=/DXMSTATIC /DMOTIFAPP
endif
######################################################
# Override for XFree86/LessTif

View File

@@ -0,0 +1,8 @@
#
# $Revision-Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
-include $(TOP)/configure/os/CONFIG_SITE.win32-x86.win32-x86

View File

@@ -194,9 +194,8 @@ static long put_array_info(DBADDR *paddr, long nNew)
subArrayRecord *prec = (subArrayRecord *) paddr->precord;
if (nNew > prec->malm)
prec->nord = prec->malm;
else
prec->nord = nNew;
nNew = prec->malm;
prec->nord = nNew;
return 0;
}

View File

@@ -1566,6 +1566,7 @@ static void putNotifyErrorReply ( struct client *client, caHdrLargeArray *mp, in
0u, mp->m_dataType, mp->m_count, statusCA,
mp->m_available, 0 );
if ( status != ECA_NORMAL ) {
SEND_UNLOCK ( client );
errlogPrintf ("%s at %d: should always get sufficent space for put notify error reply\n",
__FILE__, __LINE__);
return;
@@ -2144,6 +2145,7 @@ static void search_fail_reply ( caHdrLargeArray *mp, void *pPayload, struct clie
status = cas_copy_in_header ( client, CA_PROTO_NOT_FOUND,
0u, mp->m_dataType, mp->m_count, mp->m_cid, mp->m_available, NULL );
if ( status != ECA_NORMAL ) {
SEND_UNLOCK ( client );
errlogPrintf ( "%s at %d: should always get sufficent space for search fail reply?\n",
__FILE__, __LINE__ );
return;

View File

@@ -416,8 +416,8 @@ static void log_one_client (struct client *client, unsigned level)
send_delay, recv_delay);
printf(
"\tUnprocessed request bytes=%u, Undelivered response bytes=%u\n",
client->send.stk,
client->recv.cnt - client->recv.stk );
client->recv.cnt - client->recv.stk,
client->send.stk );
printf(
"\tState=%s%s%s\n",
state[client->disconnect?1:0],