Compare commits
106 Commits
R3.14.9-pr
...
R3.14.9-pr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d820ed034a | ||
|
|
4452f97536 | ||
|
|
c48bf48f52 | ||
|
|
bf77401cea | ||
|
|
d4adf4a0d6 | ||
|
|
f2fac70923 | ||
|
|
a00a246b0d | ||
|
|
537f9954bf | ||
|
|
d206dd92f6 | ||
|
|
f50c49131c | ||
|
|
55986a1e92 | ||
|
|
5fa24ad581 | ||
|
|
9a81831a85 | ||
|
|
11a865805e | ||
|
|
bcc41d0e72 | ||
|
|
fc4b09f84d | ||
|
|
682bb4150c | ||
|
|
fc98fe2335 | ||
|
|
8a4e442705 | ||
|
|
11ef0bca03 | ||
|
|
1e9986a2ed | ||
|
|
2e9bd68b2f | ||
|
|
4840787079 | ||
|
|
2c9414a881 | ||
|
|
99e9d60725 | ||
|
|
f16d241662 | ||
|
|
cc9473339d | ||
|
|
a400c37cc7 | ||
|
|
c25282bf58 | ||
|
|
3fe19655a1 | ||
|
|
724a589fe1 | ||
|
|
b8bcfdcdda | ||
|
|
da75453a22 | ||
|
|
d25e7107a7 | ||
|
|
e93b833c27 | ||
|
|
f0b99cc9c1 | ||
|
|
94dfec0999 | ||
|
|
88c68422af | ||
|
|
db9f3d81a3 | ||
|
|
947822da70 | ||
|
|
f48fe4c1c0 | ||
|
|
4d30f6adaa | ||
|
|
9fb0faf86e | ||
|
|
f42e4195c5 | ||
|
|
a3808ec393 | ||
|
|
41786fef1f | ||
|
|
82d59c8d75 | ||
|
|
0fa08d07c8 | ||
|
|
a4ab66c867 | ||
|
|
565d931b4b | ||
|
|
e372769b45 | ||
|
|
f011531538 | ||
|
|
52e28d7a7a | ||
|
|
f4d3632afd | ||
|
|
22d9f942e2 | ||
|
|
29c43d0cdb | ||
|
|
318e5247f1 | ||
|
|
bdd9d96603 | ||
|
|
afc4bdd3be | ||
|
|
ce17ed5ae2 | ||
|
|
e553c3ec56 | ||
|
|
bac905a5a9 | ||
|
|
049e054c31 | ||
|
|
634f37c225 | ||
|
|
0dd205f750 | ||
|
|
ee8eec3fdb | ||
|
|
8de0f7bf7a | ||
|
|
fb15db1454 | ||
|
|
577b65a67f | ||
|
|
6c5dedead5 | ||
|
|
514bb7f897 | ||
|
|
9785a839b7 | ||
|
|
f2cc4a73e9 | ||
|
|
d443b72d29 | ||
|
|
d3069f12bc | ||
|
|
3b50639eef | ||
|
|
39128f134e | ||
|
|
6802509e6d | ||
|
|
5b6a358fab | ||
|
|
bdc071f3c5 | ||
|
|
de19586072 | ||
|
|
b61e4bcb59 | ||
|
|
4a98bdd599 | ||
|
|
54ab39d0cf | ||
|
|
af35f163ec | ||
|
|
936f194885 | ||
|
|
5150a9404c | ||
|
|
ecb43bedd9 | ||
|
|
1707e28d2e | ||
|
|
91e3c129df | ||
|
|
b50c8f5882 | ||
|
|
47d7b63b4f | ||
|
|
522e090992 | ||
|
|
e16dc7852e | ||
|
|
48337e2382 | ||
|
|
d23b8bb1d0 | ||
|
|
ce55fe1c78 | ||
|
|
aa08e33707 | ||
|
|
c51438c597 | ||
|
|
0b481a519d | ||
|
|
ec8e064333 | ||
|
|
257c7fd23b | ||
|
|
1e72aa61f0 | ||
|
|
deeda7b04f | ||
|
|
e7655058d0 | ||
|
|
78afaf42f3 |
@@ -277,7 +277,7 @@ POSIX_CPPFLAGS_YES =
|
||||
# useManifestTool.pl returns 0(don't use) or 1(use).
|
||||
#
|
||||
ifeq ($(shell $(PERL) $(EPICS_BASE_TOOLS)/useManifestTool.pl),1)
|
||||
MT_DLL_COMMAND = mt.exe /manifest $@.manifest /outputresource:$@;\#2
|
||||
MT_EXE_COMMAND = mt.exe /manifest $@.manifest /outputresource:$@;\#1
|
||||
MT_DLL_COMMAND = mt.exe /manifest $@.manifest "/outputresource:$@;\#2"
|
||||
MT_EXE_COMMAND = mt.exe /manifest $@.manifest "/outputresource:$@;\#1"
|
||||
endif
|
||||
|
||||
|
||||
@@ -12,23 +12,18 @@
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.freebsd
|
||||
|
||||
OS_CLASS = freebsd
|
||||
ARCH_CLASS = x86_64
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_64_
|
||||
|
||||
CODE_CPPFLAGS = -D_REENTRANT
|
||||
|
||||
#POSIX_CPPFLAGS = -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500
|
||||
POSIX_CPPFLAGS = -D_POSIX_THREADS
|
||||
POSIX_LDLIBS = -lpthread
|
||||
|
||||
# -D_BSD_SOURCE for gethostname() in unistd.h as needed by cacChannelIO.cpp.
|
||||
OP_SYS_CPPFLAGS += -D_BSD_SOURCE
|
||||
OP_SYS_CPPFLAGS += -Dfreebsd
|
||||
#OP_SYS_LDLIBS += -lrt
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-Wl,-rpath,%)
|
||||
|
||||
15
config/CONFIG.Host.freebsd-x86
Normal file
15
config/CONFIG.Host.freebsd-x86
Normal file
@@ -0,0 +1,15 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2006 UChicago Argonne LLC, 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 is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $Id$
|
||||
|
||||
ARCH_CLASS = x86
|
||||
|
||||
-include $(EPICS_BASE)/config/CONFIG.Host.freebsd
|
||||
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_
|
||||
@@ -1,12 +1,15 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# Copyright (c) 2006 UChicago Argonne LLC, 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
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $Id$
|
||||
|
||||
ARCH_CLASS = x86_64
|
||||
|
||||
-include $(EPICS_BASE)/config/CONFIG.Host.freebsd
|
||||
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_64_
|
||||
|
||||
17
config/CONFIG.Host.linux-x86_64
Normal file
17
config/CONFIG.Host.linux-x86_64
Normal file
@@ -0,0 +1,17 @@
|
||||
#*************************************************************************
|
||||
# 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.
|
||||
#*************************************************************************
|
||||
# $Id$
|
||||
|
||||
-include $(EPICS_BASE)/config/CONFIG.Host.Linux
|
||||
|
||||
ARCH_CLASS = Linux
|
||||
|
||||
ARCH_DEP_CFLAGS = -D_X86_64_ -Dlinux
|
||||
|
||||
13
config/CONFIG.Host.linux-x86_64-debug
Normal file
13
config/CONFIG.Host.linux-x86_64-debug
Normal file
@@ -0,0 +1,13 @@
|
||||
#*************************************************************************
|
||||
# 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.
|
||||
#*************************************************************************
|
||||
# $Id$
|
||||
|
||||
-include $(EPICS_BASE)/config/CONFIG.Host.linux-x86_64
|
||||
|
||||
@@ -71,16 +71,19 @@ POSIX_CPPFLAGS_YES += -D__EXTENSIONS__ -mt
|
||||
|
||||
ARCH_DEP_LDFLAGS += -mt
|
||||
|
||||
# socket and nsl needed by libca.a
|
||||
# socket and nsl needed by libca.a when SHARED_LIBRARIES = NO
|
||||
ARCH_DEP_LDLIBS += -lsocket -lnsl
|
||||
ARCH_DEP_LDLIBS += -lposix4 -lpthread
|
||||
ARCH_DEP_LDLIBS_8 = -lCrun
|
||||
ARCH_DEP_LDLIBS_9 = -lCrun
|
||||
|
||||
ARCH_DEP_LDLIBS_8 += -lCrun -lc -lCstd
|
||||
ARCH_DEP_LDLIBS_9 += -lCrun -lc -lCstd
|
||||
ARCH_DEP_LDLIBS_10 += -lCrun -lc -lCstd
|
||||
ARCH_DEP_LDLIBS += $(ARCH_DEP_LDLIBS_$(SOLARIS_VERSION))
|
||||
|
||||
#Allows R3.13 built extensions to load R3.14 shared libs
|
||||
SYS_DLL_LIBS_solaris_8 = Crun
|
||||
SYS_DLL_LIBS_solaris_9 = Crun
|
||||
SYS_DLL_LIBS_solaris_10 = Crun
|
||||
SYS_DLL_LIBS_solaris += posix4 pthread $(SYS_DLL_LIBS_solaris_$(SOLARIS_VERSION))
|
||||
|
||||
# Runtime ldflags
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
# solaris-sparc is the new name for solaris
|
||||
-include $(EPICS_BASE)/config/CONFIG.Host.solaris
|
||||
|
||||
ARCH_DEP_CFLAGS += -xtarget=ultra -xarch=v9
|
||||
ARCH_DEP_CXXFLAGS += -xtarget=ultra -xarch=v9
|
||||
ARCH_DEP_LDFLAGS += -xtarget=ultra -xarch=v9
|
||||
ARCH_DEP_CFLAGS += -xarch=generic64
|
||||
ARCH_DEP_CXXFLAGS += -xarch=generic64
|
||||
ARCH_DEP_LDFLAGS += -xarch=generic64
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# CONFIG.Host.solaris-x86
|
||||
# CONFIG.Host.solaris-x86-gnu
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.solaris-x86
|
||||
|
||||
@@ -12,20 +12,7 @@
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.solarisGnu
|
||||
|
||||
ARCH_CLASS = solaris
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
#
|
||||
# required by sun's C++ compiler
|
||||
#
|
||||
AR = ar
|
||||
_AR = $(AR) $(ARFLAGS)
|
||||
G++_AR = $(_AR)
|
||||
CCC_AR = $(CCC) -xar -o
|
||||
ARCMD = $($(CPLUSPLUS)_AR) $@
|
||||
RANLIB =
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.solaris
|
||||
|
||||
#==========================
|
||||
# These are overrides of ANSI and CPLUSPLUS values in CONFIG_SITE
|
||||
@@ -33,25 +20,3 @@ ANSI=GCC
|
||||
CPLUSPLUS=G++
|
||||
#==========================
|
||||
|
||||
SOLARIS_VERSION = $(subst 5.,,$(shell uname -r))
|
||||
ARCH_DEP_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION)
|
||||
POSIX_CPPFLAGS_YES += -D__EXTENSIONS__
|
||||
|
||||
ARCH_DEP_LDFLAGS += -mt
|
||||
|
||||
# socket and nsl needed by libca.a
|
||||
ARCH_DEP_LDLIBS += -lsocket -lnsl
|
||||
ARCH_DEP_LDLIBS += -lposix4 -lpthread
|
||||
ARCH_DEP_LDLIBS_8 = -lCrun
|
||||
ARCH_DEP_LDLIBS_9 = -lCrun
|
||||
ARCH_DEP_LDLIBS += $(ARCH_DEP_LDLIBS_$(SOLARIS_VERSION))
|
||||
|
||||
#Allows R3.13 built extensions to load R3.14 shared libs
|
||||
SYS_DLL_LIBS_solaris_8 = Crun
|
||||
SYS_DLL_LIBS_solaris_9 = Crun
|
||||
SYS_DLL_LIBS_solaris += posix4 pthread $(SYS_DLL_LIBS_solaris_$(SOLARIS_VERSION))
|
||||
|
||||
# Runtime ldflags
|
||||
RUNTIME_LDFLAGS =$(addprefix -R,$(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)\
|
||||
$(EPICS_EXTENSIONS)/lib/$(EPICS_HOST_ARCH))
|
||||
|
||||
|
||||
@@ -12,14 +12,15 @@
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.win32-x86-cygwin
|
||||
|
||||
SHARED_LIBRARIES = NO
|
||||
|
||||
#ARCH_CLASS = WIN32
|
||||
ARCH_CLASS = cygwin
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
EXE = .exe
|
||||
|
||||
SHARED_LIBRARIES = NO
|
||||
|
||||
ARCH_CLASS = WIN32
|
||||
|
||||
AR = ar -rc
|
||||
ARCMD = $(AR) $@
|
||||
RANLIB = ranlib -t
|
||||
@@ -35,13 +36,16 @@ G++_STRICT = $(G++) -pedantic
|
||||
|
||||
# Dont use -fPIC: with -fPIC we get
|
||||
# "warning: -fPIC ignored for target (all code is position independent) "
|
||||
GCC_DEP_CFLAGS = -D_REENTRANT
|
||||
G++_DEP_CFLAGS = -D_REENTRANT
|
||||
GCC_DEP_CFLAGS =
|
||||
G++_DEP_CFLAGS =
|
||||
|
||||
OP_SYS_CFLAGS =
|
||||
OP_SYS_CPPFLAGS = -mno-cygwin
|
||||
OP_SYS_CXXFLAGS += -D__cplusplus
|
||||
OP_SYS_LDFLAGS += -mno-cygwin
|
||||
|
||||
POSIX_CPPFLAGS_YES =
|
||||
|
||||
# With no-cygwin option:
|
||||
# compiler defines _X86_ 1
|
||||
# compiler defines __MSVCRT__ 1
|
||||
|
||||
@@ -12,12 +12,14 @@
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.win32-x86-mingw
|
||||
|
||||
ARCH_CLASS = WIN32
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
EXE = .exe
|
||||
|
||||
SHARED_LIBRARIES = NO
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
ARCH_CLASS = WIN32
|
||||
|
||||
AR = ar -rc
|
||||
ARCMD = $(AR) $@
|
||||
@@ -39,5 +41,18 @@ CPLUSPLUS=G++
|
||||
# Compiler defines WINNT 1
|
||||
# Compiler does not define __unix __unix__ unix
|
||||
|
||||
OP_SYS_CFLAGS =
|
||||
OP_SYS_CXXFLAGS += -D__cplusplus
|
||||
|
||||
GCC_DEP_CFLAGS =
|
||||
G++_DEP_CFLAGS =
|
||||
|
||||
POSIX_CPPFLAGS_YES =
|
||||
|
||||
ARCH_DEP_LDLIBS = -lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm
|
||||
|
||||
# Remove -ansi compile option for gcc (does not allow c++ type comments).
|
||||
GCC_ANSI = $(GCC)
|
||||
GCC_STRICT = $(GCC) -pedantic
|
||||
G++_NORMAL = $(G++) -pedantic
|
||||
G++_STRICT = $(G++) -pedantic
|
||||
|
||||
@@ -244,7 +244,7 @@ LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS)\
|
||||
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(STATIC_LDLIBS) $(ARCH_DEP_LDLIBS)\
|
||||
$(OP_SYS_LDLIBS) $(POSIX_LDLIBS)
|
||||
|
||||
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS) $(POSIX_CPPFLAGS)
|
||||
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS) $(POSIX_CPPFLAGS) $(OP_SYS_CPPFLAGS)
|
||||
|
||||
CPPSNCFLAGS = $(INCLUDES)
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#*************************************************************************
|
||||
# CONFIG_HOST_ARCH.Darwin
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#*************************************************************************
|
||||
# CONFIG_HOST_ARCH.Linux
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#*************************************************************************
|
||||
# CONFIG_HOST_ARCH.alpha
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
@@ -9,6 +9,3 @@
|
||||
# $Id$
|
||||
|
||||
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
WIND_HOST_TYPE = i386-linux2
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#*************************************************************************
|
||||
# CONFIG_HOST_ARCH.hp700
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
15
config/CONFIG_HOST_ARCH.linux-x86_64
Normal file
15
config/CONFIG_HOST_ARCH.linux-x86_64
Normal file
@@ -0,0 +1,15 @@
|
||||
#*************************************************************************
|
||||
# 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.
|
||||
#*************************************************************************
|
||||
# $Id$
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
WIND_HOST_TYPE = x86-linux2
|
||||
15
config/CONFIG_HOST_ARCH.linux-x86_64-debug
Normal file
15
config/CONFIG_HOST_ARCH.linux-x86_64-debug
Normal file
@@ -0,0 +1,15 @@
|
||||
#*************************************************************************
|
||||
# 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.
|
||||
#*************************************************************************
|
||||
# $Id$
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.linux-x86_64
|
||||
|
||||
HOST_OPT = NO
|
||||
@@ -9,7 +9,6 @@
|
||||
#*************************************************************************
|
||||
# CONFIG_HOST_ARCH.sgi
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# CONFIG_HOST_ARCH.solaris
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# CONFIG_HOST_ARCH.solaris-x86
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# CONFIG_HOST_ARCH.solarisGnu
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#*************************************************************************
|
||||
# CONFIG_HOST_ARCH.sun4
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# CONFIG_SITE.Vx.ppc604
|
||||
|
||||
# APS override of tornado directory for ppc
|
||||
#VX_DIR_YES = /usr/local/vw/tornado101ppc2
|
||||
|
||||
@@ -28,7 +28,7 @@ EPICS_BASE_IOC_LIBS += dbIoc registryIoc dbStaticIoc ca Com
|
||||
#---------------------------------------------------------------
|
||||
# Epics base Host libraries
|
||||
|
||||
EPICS_BASE_HOST_LIBS += cas gdd iocsh asHost dbStaticHost registryIoc
|
||||
EPICS_BASE_HOST_LIBS += cas gdd iocshHost asHost dbStaticHost registryIoc
|
||||
EPICS_BASE_HOST_LIBS += ca Com
|
||||
|
||||
#---------------------------------------------------------------
|
||||
|
||||
@@ -29,8 +29,8 @@ EPICS_MODIFICATION = 9
|
||||
EPICS_PATCH_LEVEL = 0
|
||||
|
||||
# This will be -CVS or empty at an official release point
|
||||
#EPICS_CVS_SNAPSHOT=-CVS
|
||||
EPICS_CVS_SNAPSHOT=-pre1
|
||||
EPICS_CVS_SNAPSHOT=-pre2
|
||||
#EPICS_CVS_SNAPSHOT=
|
||||
|
||||
# No changes should be needed below here
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
# darwin-ppc (PowerPC based Apple running OSX)
|
||||
# darwin-x86 (Intel based Apple running OSX)
|
||||
# darwin-ppcx86 (Universal binaries for both CPUs)
|
||||
# freebsd-x86 (GNU compiler used for host builds)
|
||||
# freebsd-x86_64 (GNU compiler used for host builds)
|
||||
# hpux-parisc (HP compiler used for host builds)
|
||||
# hpux-parisc-gnu (GNU compiler used for host builds)
|
||||
# linux-ppc (GNU compiler used for host builds)
|
||||
@@ -59,6 +61,7 @@
|
||||
# linux-586 (linux-x86 host)
|
||||
# linux-686 (linux-x86 host)
|
||||
# linux-athlon (linux-x86 host)
|
||||
# linux-arm
|
||||
# vxWorks-486
|
||||
# vxWorks-68040
|
||||
# vxWorks-68040lc
|
||||
@@ -68,6 +71,8 @@
|
||||
# vxWorks-ppc603_long
|
||||
# vxWorks-ppc604
|
||||
# vxWorks-ppc604_long
|
||||
# vxWorks-ppc604_altivec
|
||||
# vxWorks-mpc8540
|
||||
# RTEMS-gen68360
|
||||
# RTEMS-mcp750
|
||||
# RTEMS-mvme167
|
||||
|
||||
@@ -16,11 +16,6 @@ VALID_BUILDS = Host Ioc
|
||||
# Gnu directory
|
||||
GNU_DIR = /usr/local
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Get fullpathname of relative dirs
|
||||
SHRLIB_SEARCH_FULLPATHDIRS = $(foreach dir,$(SHRLIB_SEARCH_DIRS), \
|
||||
$(shell perl $(TOOLS)/fullPathName.pl $(dir)))
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Unix prefix and suffix definitions
|
||||
EXE =
|
||||
@@ -55,8 +50,10 @@ SHRLIB_DEPLIBS=$(foreach lib, $(LIB_LIBS) $(USR_LIBS), \
|
||||
SHRLIB_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(LIB_LIBS) $(USR_LIBS) \
|
||||
$($*_SYS_LIBS) $(LIB_SYS_LIBS) $(USR_SYS_LIBS)) $(LDLIBS)
|
||||
|
||||
SHRLIB_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(SHRLIB_DEPLIBS))
|
||||
SHRLIBDIR_LDFLAGS += $(sort $(SHRLIB_DEPLIB_DIRS:%=-L%))
|
||||
SHRLIB_DEPLIB_DIRS = $(foreach word,$(sort $(dir $($*_DEPLIBS) $(SHRLIB_DEPLIBS))), \
|
||||
$(shell $(PERL) $(TOOLS)/fullPathName.pl $(word)))
|
||||
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-L%)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Prod: DEPLIBS, LDFLAGS, and LDLIBS definitions
|
||||
@@ -75,8 +72,10 @@ LDLIBS_SHARED_NO = LDLIBS
|
||||
PROD_LDLIBS += $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
|
||||
$(LDLIBS_SHARED_$(SHARED_LIBRARIES))))
|
||||
|
||||
PROD_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS))
|
||||
PRODDIR_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%))
|
||||
PROD_DEPLIB_DIRS = $(foreach word,$(sort $(dir $($*_DEPLIBS) $(PROD_DEPLIBS))), \
|
||||
$(shell $(PERL) $(TOOLS)/fullPathName.pl $(word)))
|
||||
|
||||
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-L%)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Link definitions
|
||||
|
||||
@@ -27,7 +27,10 @@ ARCH_DEP_CPPFLAGS += -D_X86_
|
||||
OP_SYS_CPPFLAGS += -DCYGWIN32 -U_WIN32
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-Wl,-rpath,%)
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
# Definitions used when COMMANDLINE_LIBRARY is READLINE
|
||||
INCLUDES_READLINE = -I$(GNU_DIR)/include
|
||||
|
||||
34
configure/os/CONFIG.Common.freebsd-x86
Normal file
34
configure/os/CONFIG.Common.freebsd-x86
Normal file
@@ -0,0 +1,34 @@
|
||||
# $Id$
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for freebsd-x86 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.freebsd-x86
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all freebsd targets
|
||||
include $(CONFIG)/os/CONFIG.Common.freebsdCommon
|
||||
|
||||
ARCH_CLASS = x86
|
||||
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
ifeq ($(EPICS_HOST_ARCH),freebsd-x86)
|
||||
# Added for 386,486,... cross builds
|
||||
CMPLR_PREFIX=
|
||||
CROSS_INCLUDES=
|
||||
CROSS_LDFLAGS=
|
||||
# Use -w not -Wall
|
||||
#WARN_CFLAGS_YES = -w
|
||||
#WARN_CXXFLAGS_YES = -w
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.freebsd-x86
|
||||
-include $(CONFIG)/os/CONFIG.freebsd-x86.freebsd-x86
|
||||
-include $(CONFIG)/os/CONFIG_SITE.freebsd-x86.freebsd-x86
|
||||
else
|
||||
GNU_TARGET=i586-pc-freebsd-gnu
|
||||
CMPLR_SUFFIX=
|
||||
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -13,17 +13,18 @@ OS_CLASS = freebsd
|
||||
|
||||
CODE_CPPFLAGS = -D_REENTRANT
|
||||
|
||||
#POSIX_CPPFLAGS = -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500
|
||||
POSIX_CPPFLAGS = -D_POSIX_THREADS
|
||||
POSIX_LDLIBS = -lpthread
|
||||
|
||||
# -D_BSD_SOURCE for gethostname() in unistd.h as needed by cacChannelIO.cpp.
|
||||
OP_SYS_CPPFLAGS += -D_BSD_SOURCE
|
||||
OP_SYS_CPPFLAGS += -Dfreebsd
|
||||
#OP_SYS_LDLIBS += -lrt
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-Wl,-rpath,%)
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
# Definitions used when COMMANDLINE_LIBRARY is READLINE
|
||||
LDLIBS_READLINE = -lreadline -lcurses
|
||||
|
||||
@@ -26,6 +26,9 @@ LOADABLE_SHRLIB_SUFFIX = .sl$(addprefix .,$(LOADABLE_SHRLIB_VERSION))
|
||||
# Set runtime path for shared libraries
|
||||
empty:= # trick from the make docs...
|
||||
space:= $(empty) $(empty)
|
||||
RUNTIME_LDFLAGS = -Wl,+b$(subst $(space),:,$(sort $(SHRLIB_SEARCH_FULLPATHDIRS))),+s
|
||||
SHRLIBDIR_LDFLAGS += -Wl,+b$(subst $(space),:,$(SHRLIB_DEPLIB_DIRS)),+s
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_LDFLAGS += -Wl,+b$(subst $(space),:,$(PROD_DEPLIB_DIRS)),+s
|
||||
|
||||
GNU_TARGET=parisc-hp-unix
|
||||
|
||||
@@ -29,7 +29,10 @@ ARCH_DEP_CPPFLAGS += -D_X86_
|
||||
OP_SYS_CPPFLAGS += -DUNIX
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-Wl,-rpath,%)
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
# Definitions used when COMMANDLINE_LIBRARY is READLINE
|
||||
INCLUDES_READLINE = -I$(GNU_DIR)/include
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-arm
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Unix targets
|
||||
# Include definitions common to all Linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = arm
|
||||
@@ -14,14 +14,16 @@ ARCH_CLASS = arm
|
||||
# Set a special definition for network order of Netwinder ARM floating point
|
||||
ARCH_DEP_CPPFLAGS += -D_ARM_NWFP_
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
#RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath,%)
|
||||
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath-link,%)
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
GNU_TARGET = arm-linux
|
||||
|
||||
ifdef CROSS
|
||||
GNU_TARGET=arm-linux
|
||||
# prefix of compiler tools
|
||||
CMPLR_SUFFIX=
|
||||
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
|
||||
# prefix of compiler tools
|
||||
CMPLR_SUFFIX =
|
||||
CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
|
||||
|
||||
# Provide a link-time path for shared libraries
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath-link,%)
|
||||
|
||||
# Provide a link-time path for products
|
||||
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath-link,%)
|
||||
endif
|
||||
|
||||
|
||||
@@ -23,7 +23,10 @@ OP_SYS_CPPFLAGS += -Dlinux
|
||||
OP_SYS_LDLIBS += -lrt
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-Wl,-rpath,%)
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
# Definitions used when COMMANDLINE_LIBRARY is READLINE
|
||||
LDLIBS_READLINE = -lreadline -lcurses
|
||||
|
||||
@@ -28,7 +28,11 @@ OP_SYS_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION) $(COMPILER_CPPFLAGS)
|
||||
OP_SYS_LDFLAGS += $(COMPILER_LDFLAGS)
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-R%)
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-R%)
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-R%)
|
||||
|
||||
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
|
||||
|
||||
GNU_TARGET=sparc-sun-solaris2
|
||||
|
||||
@@ -10,6 +10,6 @@
|
||||
# Include definitions common to all solaris-sparc target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-sparc
|
||||
|
||||
ARCH_DEP_CFLAGS += -xtarget=ultra -xarch=v9
|
||||
ARCH_DEP_CXXFLAGS += -xtarget=ultra -xarch=v9
|
||||
ARCH_DEP_LDFLAGS += -xtarget=ultra -xarch=v9
|
||||
ARCH_DEP_CFLAGS += -xarch=generic64
|
||||
ARCH_DEP_CXXFLAGS += -xarch=generic64
|
||||
ARCH_DEP_LDFLAGS += -xarch=generic64
|
||||
|
||||
@@ -29,7 +29,11 @@ OP_SYS_LDFLAGS += $(COMPILER_LDFLAGS)
|
||||
ARCH_DEP_CPPFLAGS = -D_X86_
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-R%)
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-R%)
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-R%)
|
||||
|
||||
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
|
||||
|
||||
GNU_TARGET=x86-sun-solaris2
|
||||
|
||||
21
configure/os/CONFIG.Common.vxWorks-mpc8540
Normal file
21
configure/os/CONFIG.Common.vxWorks-mpc8540
Normal file
@@ -0,0 +1,21 @@
|
||||
# $Id
|
||||
#
|
||||
# Definitions for vxWorks-mpc8540 targets: MPC8540 CPU with >32MB RAM.
|
||||
# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-mpc8540
|
||||
#
|
||||
# This file is maintained by the EPICS build community.
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = ppc
|
||||
|
||||
ARCH_CLASS = ppc
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PPC32
|
||||
ARCH_DEP_CFLAGS = -mcpu=8540 -msoft-float -mstrict-align -mlongcall
|
||||
|
||||
GNU_TARGET = powerpc-wrs-vxworks
|
||||
@@ -1,10 +1,9 @@
|
||||
# CONFIG.Common.vxWorks-ppc603
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for vxWorks-ppc603 target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-ppc603
|
||||
# Definitions for vxWorks-ppc603 targets: PPC603 and PMC8240 CPUs
|
||||
# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-ppc603
|
||||
#
|
||||
# This file is maintained by the EPICS build community.
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks target archs
|
||||
|
||||
@@ -1,22 +1,13 @@
|
||||
# CONFIG.Common.vxWorks-ppc603_long
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for vxWorks-ppc603 target archs with at least 32MB
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-ppc603_long
|
||||
# Definitions for vxWorks-ppc603 targets with >32MB of RAM
|
||||
# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-ppc603_long
|
||||
#
|
||||
# This file is maintained by the EPICS build community.
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
|
||||
# Inherit the settings from vxWorks-ppc603
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc603
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = ppc
|
||||
|
||||
ARCH_CLASS = ppc
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PPC603
|
||||
ARCH_DEP_CFLAGS = -mcpu=603 -mstrict-align -mlongcall
|
||||
|
||||
GNU_TARGET = powerpc-wrs-vxworks
|
||||
# Tell compiler to generate long branches
|
||||
ARCH_DEP_CFLAGS += -mlongcall
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
# CONFIG.Common.vxWorks-ppc604
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for vxWorks-ppc604 target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-ppc604
|
||||
# Definitions for vxWorks-ppc604 targets: PPC604, MPC7xx and MPC74xx CPUs
|
||||
# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-ppc604
|
||||
#
|
||||
# This file is maintained by the EPICS build community.
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks target archs
|
||||
@@ -12,11 +11,11 @@ include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = ppc
|
||||
|
||||
|
||||
ARCH_CLASS = ppc
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PPC604
|
||||
ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align
|
||||
ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align -mno-implicit-fp
|
||||
|
||||
GNU_TARGET = powerpc-wrs-vxworks
|
||||
|
||||
21
configure/os/CONFIG.Common.vxWorks-ppc604_altivec
Normal file
21
configure/os/CONFIG.Common.vxWorks-ppc604_altivec
Normal file
@@ -0,0 +1,21 @@
|
||||
# $Id$
|
||||
#
|
||||
# Definitions for vxWorks-ppc604 targets with an Altivec and >32MB of RAM.
|
||||
# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-ppc604_altivec
|
||||
#
|
||||
# This file is maintained by the EPICS build community.
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Inherit the settings from vxWorks-ppc604_long
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
|
||||
|
||||
defval = $(if $(strip $(1),),$(1),$(2))
|
||||
|
||||
# Tell compiler to include altivec support
|
||||
ALTIVEC_CFLAG_5 = -fvec
|
||||
|
||||
# From 6.1 the altivec compiler option changed
|
||||
ALTIVEC_CFLAG_6.0 = -fvec
|
||||
ALTIVEC_CFLAG_6 = $(call defval,$(ALTIVEC_CFLAG_$(VXWORKS_VERSION)),-maltivec)
|
||||
|
||||
ARCH_DEP_CFLAGS += $(ALTIVEC_CFLAG_$(VXWORKS_MAJOR_VERSION))
|
||||
@@ -1,22 +1,13 @@
|
||||
# CONFIG.Common.vxWorks-ppc604_long
|
||||
#
|
||||
# $Id
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for vxWorks-ppc604 target archs with at least 32MB
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-ppc604_long
|
||||
# Definitions for vxWorks-ppc604 targets with >32MB of RAM
|
||||
# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-ppc604_long
|
||||
#
|
||||
# This file is maintained by the EPICS build community.
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
|
||||
# Inherit the settings from vxWorks-ppc604
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = ppc
|
||||
|
||||
ARCH_CLASS = ppc
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PPC604
|
||||
ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align -mlongcall
|
||||
|
||||
GNU_TARGET = powerpc-wrs-vxworks
|
||||
# Tell compiler to generate long branches
|
||||
ARCH_DEP_CFLAGS += -mlongcall
|
||||
|
||||
@@ -88,10 +88,19 @@ VX_GNU_VERSION_6.2 = 3.3.2
|
||||
VX_GNU_VERSION_6.3 = 3.4.4
|
||||
VX_GNU_VERSION = $(VX_GNU_VERSION_$(VXWORKS_VERSION))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Fix WIND_BASE for vxWorks 6.x on linux
|
||||
# NB: We know the value of WIND_HOST_TYPE here, but not VXWORKS_VERSION
|
||||
ifeq ($(WIND_HOST_TYPE),x86-linux)
|
||||
WIND_HOST_TYPE_5 = x86-linux
|
||||
WIND_HOST_TYPE_6 = x86-linux2
|
||||
WIND_HOST_TYPE = $(WIND_HOST_TYPE_$(VXWORKS_MAJOR_VERSION))
|
||||
endif
|
||||
|
||||
#--------------------------------------------------
|
||||
# vxWorks directory definitions
|
||||
VX_DIR_5 = $(WIND_BASE)
|
||||
VX_DIR_6 = $(WIND_BASE)/vxWorks-$(VXWORKS_VERSION)
|
||||
VX_DIR_6 = $(WIND_BASE)/vxworks-$(VXWORKS_VERSION)
|
||||
VX_DIR = $(VX_DIR_$(VXWORKS_MAJOR_VERSION))
|
||||
|
||||
VX_INCLUDE_DIRS_5 = $(VX_DIR)/target/h
|
||||
@@ -105,6 +114,9 @@ GNU_DIR_5 = $(WIND_BASE)/host/$(WIND_HOST_TYPE)
|
||||
GNU_DIR_6 = $(WIND_BASE)/gnu/$(VX_GNU_VERSION)-vxworks-$(VXWORKS_VERSION)/$(WIND_HOST_TYPE)
|
||||
GNU_DIR = $(GNU_DIR_$(VXWORKS_MAJOR_VERSION))
|
||||
|
||||
# GCC_EXEC_PREFIX considered harmful since vxWorks 6 moved it
|
||||
unexport GCC_EXEC_PREFIX
|
||||
|
||||
#--------------------------------------------------
|
||||
# C++ host processing
|
||||
NM = $(GNU_BIN)/$(CMPLR_PREFIX)nm$(CMPLR_SUFFIX)$(HOSTEXE)
|
||||
@@ -124,13 +136,17 @@ export TOOL_FAMILY = GNU
|
||||
# Operating system flags
|
||||
OP_SYS_CPPFLAGS += -DvxWorks
|
||||
OP_SYS_CFLAGS += -fno-builtin
|
||||
#OP_SYS_CFLAGS += -fno-builtin -fdollars-in-identifiers
|
||||
OP_SYS_LDFLAGS +=
|
||||
|
||||
# Fix for vxWorks headers using macros defined in
|
||||
# vxWorks.h but not including vxWorks.h
|
||||
OP_SYS_INCLUDE_CPPFLAGS_5.5 += -include $(VX_DIR)/target/h/vxWorks.h
|
||||
OP_SYS_INCLUDE_CPPFLAGS = $(OP_SYS_INCLUDE_CPPFLAGS_$(VXWORKS_VERSION))
|
||||
# Fix for vxWorks headers that use macros defined in vxWorks.h but
|
||||
# which don't actually include vxWorks.h themselves, for example the
|
||||
# target/h/sys/stat.h file which uses ULONG
|
||||
OP_SYS_INCLUDE_CPPFLAGS_5 += -include $(VX_DIR)/target/h/vxWorks.h
|
||||
OP_SYS_INCLUDE_CPPFLAGS = $(OP_SYS_INCLUDE_CPPFLAGS_$(VXWORKS_MAJOR_VERSION))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Optimization: Officially vxWorks only supports -O2 or less.
|
||||
OPT_CFLAGS_YES = -O2
|
||||
OPT_CXXFLAGS_YES = -O2
|
||||
|
||||
#--------------------------------------------------
|
||||
# code flags
|
||||
@@ -144,14 +160,10 @@ CODE_CXXFLAGS_6.2 = -fno-implicit-templates
|
||||
CODE_CXXFLAGS_6 = $(CODE_CXXFLAGS_$(VXWORKS_VERSION))
|
||||
CODE_CXXFLAGS = $(CODE_CXXFLAGS_$(VXWORKS_MAJOR_VERSION))
|
||||
|
||||
#--------------------------------------------------
|
||||
# posix c preprocessor flags
|
||||
POSIX_CPPFLAGS = -D_POSIX_SOURCE
|
||||
|
||||
#--------------------------------------------------
|
||||
# no shared libs for vxWorks
|
||||
SHRLIB_CFLAGS =
|
||||
SHRLIB_LDFLAGS =
|
||||
SHRLIB_CFLAGS =
|
||||
SHRLIB_LDFLAGS =
|
||||
|
||||
#--------------------------------------------------
|
||||
# osithead use default stack, YES or NO override
|
||||
|
||||
@@ -18,7 +18,10 @@ EXE=.exe
|
||||
COMPILER_CPPFLAGS = -D_REENTRANT
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-Wl,-rpath,%)
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
# Definitions used when COMMANDLINE_LIBRARY is READLINE
|
||||
INCLUDES_READLINE = -I$(GNU_DIR)/include
|
||||
@@ -42,6 +45,8 @@ OP_SYS_CXXFLAGS += -D__cplusplus
|
||||
# Overrides -DUNIX from CONFIG.Common.UnixCommon
|
||||
OP_SYS_CPPFLAGS = -mno-cygwin
|
||||
|
||||
LIBRARY_LD_RESS=
|
||||
|
||||
OP_SYS_LDFLAGS += -mno-cygwin
|
||||
OP_SYS_LDLIBS = -lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm
|
||||
|
||||
|
||||
@@ -18,8 +18,13 @@ EXE=.exe
|
||||
# Library used when COMMANDLINE_LIBRARY is READLINE
|
||||
LDLIBS_READLINE = -lreadline
|
||||
|
||||
STATIC_BUILD=YES
|
||||
STATIC_LDLIBS_YES=-lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
|
||||
# Compiler defines _X86_ 1
|
||||
|
||||
@@ -37,3 +42,10 @@ STATIC_LDLIBS_YES=-lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm
|
||||
# Override for -DUNIX from CONFIG.Common.UnixCommon
|
||||
OP_SYS_CPPFLAGS =
|
||||
|
||||
OP_SYS_CXXFLAGS += -D__cplusplus
|
||||
|
||||
LIBRARY_LD_RESS=
|
||||
|
||||
OP_SYS_LDLIBS = -lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm
|
||||
#STATIC_LDLIBS_YES=-lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ CCC = $(GNU_BIN)/c++
|
||||
#
|
||||
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
|
||||
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \
|
||||
-install_name $(firstword $(SHRLIB_SEARCH_FULLPATHDIRS))/$@ \
|
||||
-install_name $(shell perl $(TOOLS)/fullPathName.pl $(INSTALL_LIB))/$@ \
|
||||
-compatibility_version $(EPICS_VERSION).$(EPICS_REVISION) \
|
||||
-current_version $(SHRLIB_VERSION)
|
||||
SHRLIB_SUFFIX = .$(SHRLIB_VERSION).dylib
|
||||
|
||||
10
configure/os/CONFIG.freebsd-x86.Common
Normal file
10
configure/os/CONFIG.freebsd-x86.Common
Normal file
@@ -0,0 +1,10 @@
|
||||
# $Id$
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for freebsd host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.freebsd-x86.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
19
configure/os/CONFIG.freebsd-x86.freebsd-x86
Normal file
19
configure/os/CONFIG.freebsd-x86.freebsd-x86
Normal file
@@ -0,0 +1,19 @@
|
||||
# $Id$
|
||||
#
|
||||
# Definitions for freebsd-x86_64 host - freebsd-x86_64 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.freebsd-x86_64.freebsd-x86_64
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include common gnu compiler definitions
|
||||
include $(CONFIG)/CONFIG.gnuCommon
|
||||
|
||||
GNU_DIR = /usr
|
||||
|
||||
STATIC_LDFLAGS_YES= -Wl,-Bstatic
|
||||
STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Wl,-Bdynamic
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
SHRLIB_LDFLAGS += -shared -fPIC
|
||||
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for freebsd host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.freebsd.Common
|
||||
# Sites may override these definitions in CONFIG_SITE.freebsd-x86_64.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to unix hosts
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
include $(CONFIG)/CONFIG.gnuCommon
|
||||
|
||||
GNU_DIR = /usr
|
||||
GNU_LDLIBS_YES =
|
||||
|
||||
STATIC_LDFLAGS_YES= -Wl,-Bstatic
|
||||
STATIC_LDFLAGS_NO=
|
||||
|
||||
@@ -9,9 +9,6 @@ include $(CONFIG)/CONFIG.gnuCommon
|
||||
|
||||
GNU_DIR = /usr
|
||||
|
||||
# Override the -nostdinc flag, needed here...
|
||||
CROSS_CPPFLAGS =
|
||||
|
||||
# Copied from x86.x86
|
||||
STATIC_LDFLAGS_YES= -Wl,-Bstatic
|
||||
STATIC_LDFLAGS_NO=
|
||||
|
||||
@@ -52,7 +52,7 @@ STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Bdynamic
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
SHRLIB_CFLAGS = -KPIC
|
||||
SHRLIB_CFLAGS = -xcode=pic32
|
||||
SHRLIB_LDFLAGS = -z defs -G -h $@ -z text
|
||||
LOADABLE_SHRLIB_LDFLAGS = -G -h $@ -z text
|
||||
|
||||
|
||||
@@ -299,9 +299,9 @@ LINK.cpp = $(WINLINK) -nologo $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) -out:
|
||||
# useManifestTool.pl returns 0(don't use) or 1(use).
|
||||
#
|
||||
ifeq ($(shell $(PERL) $(TOOLS)/useManifestTool.pl),1)
|
||||
MT_DLL_COMMAND = mt.exe /manifest $@.manifest /outputresource:$@;\#2
|
||||
MT_DLL_COMMAND = mt.exe /manifest $@.manifest "/outputresource:$@;\#2"
|
||||
MT_EXE_COMMAND_YES =
|
||||
MT_EXE_COMMAND_NO = mt.exe /manifest $@.manifest /outputresource:$@;\#1
|
||||
MT_EXE_COMMAND_NO = mt.exe /manifest $@.manifest "/outputresource:$@;\#1"
|
||||
MT_EXE_COMMAND = $(MT_EXE_COMMAND_$(STATIC_BUILD))
|
||||
endif
|
||||
|
||||
|
||||
@@ -10,9 +10,10 @@
|
||||
# to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) (or wherever you install
|
||||
# the EPICS shared libraries on your system) when invoking base
|
||||
# executables, or
|
||||
# b) Add the path to SHRLIB_SEARCH_FULLPATHDIRS below, which will burn
|
||||
# b) Add the path to SHRLIB_DEPLIB_DIRS and PROD_DEPLIB_DIRS 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_SHORT_VERSION)/base/$(EPICS_VERSION)-$(EPICS_REVISION)-$(EPICS_MODIFICATION)-$(EPICS_PATCH_LEVEL)$(EPICS_CVS_SNAPSHOT)$(EPICS_SITE_VSTRING)/lib/$(EPICS_HOST_ARCH)
|
||||
SHRLIB_DEPLIB_DIRS += /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)
|
||||
PROD_DEPLIB_DIRS += /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)
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
# a) LD_LIBRARY_PATH must include the full absolute pathname to
|
||||
# $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) when invoking base
|
||||
# executables.
|
||||
# b) Add the runtime path to SHRLIB_SEARCH_FULLPATHDIRS, which will add
|
||||
# the named directory to the list contained in the executables.
|
||||
# b) Add the runtime path to SHRLIB_DEPLIB_DIRS and PROD_DEPLIB_DIRS, which
|
||||
# will add the named directory to the list contained in the executables.
|
||||
# c) Add the runtime path to /etc/ld.so.conf and run ldconfig
|
||||
# to inform the system of the shared library location.
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
# a) LD_LIBRARY_PATH must include the full absolute pathname to
|
||||
# $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) when invoking base
|
||||
# executables.
|
||||
# b) Add the runtime path to SHRLIB_SEARCH_DIRS, which will add
|
||||
# the named directory to the list contained in the executables.
|
||||
# b) Add the runtime path to SHRLIB_DEPLIB_DIRS and PROD_DEPLIB_DIRS, which
|
||||
# will add the named directory to the list contained in the executables.
|
||||
# c) Add the runtime path to /etc/ld.so.conf and run ldconfig
|
||||
# to inform the system of the shared library location.
|
||||
|
||||
|
||||
6
configure/os/CONFIG_SITE.Common.vxWorks-mpc8540
Normal file
6
configure/os/CONFIG_SITE.Common.vxWorks-mpc8540
Normal file
@@ -0,0 +1,6 @@
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for the vxWorks-mpc8540 target
|
||||
#
|
||||
# Only the local epics system manager should modify this file
|
||||
#-------------------------------------------------------
|
||||
7
configure/os/CONFIG_SITE.Common.vxWorks-ppc603
Normal file
7
configure/os/CONFIG_SITE.Common.vxWorks-ppc603
Normal file
@@ -0,0 +1,7 @@
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for the vxWorks-ppc603 target
|
||||
#
|
||||
# Only the local epics system manager should modify this file
|
||||
#-------------------------------------------------------
|
||||
|
||||
10
configure/os/CONFIG_SITE.Common.vxWorks-ppc603_long
Normal file
10
configure/os/CONFIG_SITE.Common.vxWorks-ppc603_long
Normal file
@@ -0,0 +1,10 @@
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for the vxWorks-ppc603_long target
|
||||
#
|
||||
# Only the local epics system manager should modify this file
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Inherit the settings from vxWorks-ppc603
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks-ppc603
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# CONFIG_SITE.Common.vxWorks-ppc604
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for vxWorks-ppc604 target
|
||||
# Site Specific definitions for the vxWorks-ppc604 target
|
||||
#
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
#-------------------------------------------------------
|
||||
|
||||
|
||||
10
configure/os/CONFIG_SITE.Common.vxWorks-ppc604_altivec
Normal file
10
configure/os/CONFIG_SITE.Common.vxWorks-ppc604_altivec
Normal file
@@ -0,0 +1,10 @@
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for the vxWorks-ppc604_altivec target
|
||||
#
|
||||
# Only the local epics system manager should modify this file
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Inherit the settings from vxWorks-ppc604_long
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks-ppc604_long
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
# CONFIG_SITE.Common.vxWorks-ppc604
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for vxWorks-ppc604 target
|
||||
# Site Specific definitions for the vxWorks-ppc604_long target
|
||||
#
|
||||
# Only the local epics system manager should modify this file
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Inherit the settings from vxWorks-ppc604
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks-ppc604
|
||||
|
||||
|
||||
@@ -5,4 +5,8 @@
|
||||
# Site specific definitions for linux-x86 host - linux-arm target builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Diamond:
|
||||
#GNU_DIR = /home/targetOS/linux-arm/host/x86-linux/gcc_3.3.3
|
||||
|
||||
# anj@aps:
|
||||
#GNU_DIR = /local/anj/cross-arm/gcc-3.4.5-glibc-2.3.6/arm-linux
|
||||
|
||||
@@ -1,16 +1,7 @@
|
||||
# CONFIG_SITE.linux-x86.vxWorks-ppc603
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Site override definitions for linux-x86 host - vxWorks-ppc603 target builds
|
||||
# Site-specific definitions for linux-x86 builds of vxWorks-ppc603
|
||||
#
|
||||
# Only the local epics system manager should modify this file
|
||||
#-------------------------------------------------------
|
||||
|
||||
# ORNL SNS overrides for cross compilers
|
||||
#VX_DIR_YES = /opt/tornado20/
|
||||
#VX_CONFIG_DIR_YES = $(VX_DIR)/target/config
|
||||
#VX_INCLUDE_YES = /usr/local/crossgcc/ppc/powerpc-wrs-vxworks/sys-include
|
||||
#VX_GNU_YES = /usr/local/crossgcc/ppc/
|
||||
#VX_GNU_BIN_YES = $(VX_GNU)/bin
|
||||
#VX_GNU_LIB_YES = /usr/local/crossgcc/ppc/lib/gcc-lib/powerpc-wrs-vxworks/2.95.2
|
||||
|
||||
|
||||
@@ -1,15 +1,9 @@
|
||||
# CONFIG_SITE.linux-x86.vxWorks-ppc603_long
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Site override definitions for linux-x86 host - vxWorks-ppc603_long target builds
|
||||
# Site-specific definitions for linux-x86 builds of vxWorks-ppc603_long
|
||||
#
|
||||
# Only the local epics system manager should modify this file
|
||||
#-------------------------------------------------------
|
||||
|
||||
# ORNL SNS overrides for cross compilers
|
||||
#GNU_DIR=/ade/vxWorks/crossgcc-2.7.2-WRS/ppc
|
||||
#GNU_TARGET_INCLUDE_DIR=/ade/vxWorks/crossgcc-2.7.2-WRS/ppc/powerpc-wrs-vxworks/sys-include
|
||||
#CC = /ade/vxWorks/crossgcc-2.7.2-WRS/ppc/bin/cc$(CMPLR_SUFFIX)
|
||||
#CCC = /ade/vxWorks/crossgcc-2.7.2-WRS/ppc/bin/g++$(CMPLR_SUFFIX)
|
||||
|
||||
|
||||
# Inherit settings from vxWorks-ppc603
|
||||
-include $(CONFIG)/os/CONFIG_SITE.linux-x86.vxWorks-ppc603
|
||||
|
||||
@@ -1,17 +1,6 @@
|
||||
# CONFIG_SITE.linux-x86_64.vxWorks-ppc603
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Site override definitions for linux-x86_64 host - vxWorks-ppc603 target builds
|
||||
# Site-specific definitions for linux-x86_64 builds of vxWorks-ppc603
|
||||
#
|
||||
# Only the local epics system manager should modify this file
|
||||
#-------------------------------------------------------
|
||||
# This file contains overrides for Vx builds
|
||||
# ORNL SNS overrides for cross compilers
|
||||
|
||||
# The custom cross compiler for VxWorks on Linux
|
||||
# has place in a directory structure like that of
|
||||
# the Solaris distribution. So now the cross should
|
||||
# only need the following line.
|
||||
# cross-compiler from "Linux x86pc" host to a "ppc603" target
|
||||
VX_DIR_YES = /ade/vxWorks/t202/ppc
|
||||
|
||||
|
||||
@@ -1,17 +1,9 @@
|
||||
# CONFIG_SITE.linux-x86_64.vxWorks-ppc603_long
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Site override definitions for linux-x86_64 host - vxWorks-ppc603 target builds
|
||||
# Site-specific definitions for linux-x86 builds of vxWorks-ppc603_long
|
||||
#
|
||||
# Only the local epics system manager should modify this file
|
||||
#-------------------------------------------------------
|
||||
# This file contains overrides for Vx builds
|
||||
# ORNL SNS overrides for cross compilers
|
||||
|
||||
# The custom cross compiler for VxWorks on Linux
|
||||
# has place in a directory structure like that of
|
||||
# the Solaris distribution. So now the cross should
|
||||
# only need the following line.
|
||||
# cross-compiler from "Linux x86pc" host to a "ppc603" target
|
||||
VX_DIR_YES = /ade/vxWorks/t202/ppc
|
||||
|
||||
# Inherit settings from vxWorks-ppc603
|
||||
-include $(CONFIG)/os/CONFIG_SITE.linux-x86_64.vxWorks-ppc603
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
# Shared libraries are not yet supported in cygwin builds.
|
||||
SHARED_LIBRARIES=NO
|
||||
|
||||
@@ -337,7 +337,9 @@ sub UnixPath {
|
||||
|
||||
sub LocalPath {
|
||||
my ($newpath) = @_;
|
||||
if ($^O eq "darwin") {
|
||||
if ($^O eq "cygwin") {
|
||||
$newpath =~ s{^/cygdrive/([a-zA-Z])/}{$1:/};
|
||||
} elsif ($^O eq "darwin") {
|
||||
# These rules are likely to be site-specific
|
||||
$newpath =~ s{^/private/var/auto\.home/}{/home/}; # APS
|
||||
}
|
||||
|
||||
@@ -9,10 +9,38 @@
|
||||
<body lang="en">
|
||||
<h1 align="center">EPICS Base Release 3.14.x</h1>
|
||||
|
||||
<h2 align="center">Changes since 3.14.8.2</h2>
|
||||
<h2 align="center">Changes between 3.14.8.2 and 3.14.9</h2>
|
||||
|
||||
<!-- Insert new items below here ... -->
|
||||
|
||||
<h4>New Architectures</h4>
|
||||
|
||||
<p>The following target architectures have been added to this release:</p>
|
||||
|
||||
<ul>
|
||||
<li>darwin-ppcx86</li>
|
||||
<li>darwin-x86</li>
|
||||
<li>freebsd-x86</li>
|
||||
<li>freebsd-x86_64</li>
|
||||
<li>interix-x86</li>
|
||||
<li>linux-arm</li>
|
||||
<li>vxWorks-mpc8540</li>
|
||||
<li>vxWorks-ppc604_altivec</li>
|
||||
</ul>
|
||||
|
||||
<h4>vxWorks compiler optimization level</h4>
|
||||
|
||||
<p>Wind River Systems do not support optimization levels beyond <tt>-O2</tt> for
|
||||
vxWorks applications compiled using gcc, so optimized vxWorks builds are now set
|
||||
to <tt>-O2</tt> only (we currently use <tt>-O3</tt> everywhere else).</p>
|
||||
|
||||
<h4>cas</h4>
|
||||
|
||||
<p>There was a bug in the portable channel access server library that prevented
|
||||
the PV Gateway from being able to handle and pass on alarm acknowledgements from
|
||||
the EPICS Alarm Handler ALH. This has been fixed in this release and should only
|
||||
require that the gatewey be recomplied against this version of Base.</p>
|
||||
|
||||
<h4>dbLoadTemplate</h4>
|
||||
|
||||
<p>The parser for the substitutions file accepted by dbLoadTemplate() has been
|
||||
@@ -32,7 +60,8 @@ _ - + : . / \ [ ] < > ;</tt></p>
|
||||
use C89-compatible escaped character codes such as \", \', \t, \n, \064 and
|
||||
\x7e. The parser also now checks for and reports strings that have a newline
|
||||
character in them as an error - if you want a newline in a field, use the \n
|
||||
escaped version.</p>
|
||||
escaped version. These escapes only apply to the value part of a field() entry
|
||||
in .db file though; no other strings have escape codes translated.</p>
|
||||
|
||||
<h4>libCom/test and db/test</h4>
|
||||
|
||||
@@ -49,12 +78,12 @@ humans.</p>
|
||||
the test programs in a suitable order. At a vxWorks target shell, type:</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>ld </path/to/base/bin/vxWorks-<i>arch</i>/vxTestHarness.munch
|
||||
<pre>ld </path/to/base/bin/vxWorks-<i>arch</i>/vxTestHarness.munch
|
||||
cd "/path/to/writable/directory"
|
||||
epicsRunLibComTests</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>On RTEMS, boot the bin/<i>arch</i>/rtemsTestHarness binary.</p>
|
||||
<p>On RTEMS, boot the <tt>bin/<i>arch</i>/rtemsTestHarness</tt> binary.</p>
|
||||
|
||||
<p>You may wish to capture the output from running these to a file to more
|
||||
easily check the results, since there is no wrapper program to collect and
|
||||
@@ -98,7 +127,7 @@ separated by a semicolon <tt>;</tt>, all but one of which must be assignments.
|
||||
The value of the whole string is determined by the single non-assignment
|
||||
expression, which may appear anywhere in the string. For example, the following
|
||||
string causes a single CALC record to output the successive values of a sine
|
||||
curve: <tt>sin(a); a:=a+d2r</tt></p>
|
||||
curve in 1 degree intervals: <tt>sin(a); a:=a+d2r</tt></p>
|
||||
|
||||
<p>Previously any expression that performed an invalid operation which would
|
||||
generate a NaN or Inf result would be stopped immediately and return an error to
|
||||
@@ -110,7 +139,7 @@ infinity. To permit this to be checked within the expression, the new operators
|
||||
expression language. The literal values <tt>Inf</tt> and <tt>NaN</tt> are also
|
||||
now supported in expressions.</p>
|
||||
|
||||
<p>The incompatible change to the expression language was to change the
|
||||
<p>The only incompatible change to the expression language was to change the
|
||||
<tt>NOT</tt> operator from performing a unary minus operation to an integer
|
||||
bitwise not; the former meaning is illogical and as a result was probably not
|
||||
used much, if at all — nobody complained when I discussed this on
|
||||
@@ -234,7 +263,7 @@ which will run on both PowerPC and Intel x86 targets.</p>
|
||||
<p>Added support for EPICS_HOST_ARCH=darwin-x86.</p>
|
||||
|
||||
|
||||
<h2 align="center">Changes since 3.14.8.1</h2>
|
||||
<h2 align="center">Changes between 3.14.8.1 and 3.14.8.2</h2>
|
||||
|
||||
<h4>epicsStrtod</h4>
|
||||
|
||||
@@ -244,7 +273,7 @@ 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>
|
||||
<h2 align="center">Changes between 3.14.8 and 3.14.8.1</h2>
|
||||
|
||||
<h4>Version Numbering</h4>
|
||||
|
||||
@@ -291,7 +320,7 @@ win32 architectures.</p>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2 align="center">Changes since 3.14.7</h2>
|
||||
<h2 align="center">Changes between 3.14.7 and 3.14.8</h2>
|
||||
|
||||
<h4>New host targets</h4>
|
||||
|
||||
@@ -509,7 +538,7 @@ could not be created. This is fixed.</p>
|
||||
<p>222 - osiSpawnDetachedProcess doesnt close open files in dupicate process
|
||||
on POSIX</p>
|
||||
|
||||
<h2 align="center">Changes since 3.14.6</h2>
|
||||
<h2 align="center">Changes between 3.14.6 and 3.14.7</h2>
|
||||
|
||||
<h4>selRecord</h4>
|
||||
|
||||
@@ -643,7 +672,7 @@ can cause an IOC to crash.</p>
|
||||
when the ARCH defined in the ioc*/Makefile is present in BUILD_ARCHS for the
|
||||
build.</p>
|
||||
|
||||
<h2 align="center">Changes since 3.14.5</h2>
|
||||
<h2 align="center">Changes between 3.14.5 and 3.14.6</h2>
|
||||
|
||||
<h4>CA command line tools complete</h4>
|
||||
|
||||
@@ -895,7 +924,7 @@ channels)</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 align="center">Changes since 3.14.4</h2>
|
||||
<h2 align="center">Changes between 3.14.4 and 3.14.5</h2>
|
||||
|
||||
<h4>dbtr</h4>
|
||||
|
||||
@@ -1075,7 +1104,7 @@ command, add <code>registrar(iocshSystemCommand)</code> to an application
|
||||
database description file.</p>
|
||||
|
||||
<center>
|
||||
<h2>Changes since 3.14.3</h2>
|
||||
<h2>Changes between 3.14.3 and 3.14.4</h2>
|
||||
</center>
|
||||
|
||||
<h4>sCalcPostfix</h4>
|
||||
@@ -1127,7 +1156,7 @@ successfully connects.</p>
|
||||
assisting with identifying the cause.</p>
|
||||
|
||||
<center>
|
||||
<h2>Changes since 3.14.2</h2>
|
||||
<h2>Changes between 3.14.2 and 3.14.3</h2>
|
||||
</center>
|
||||
|
||||
<h4>TPRO output</h4>
|
||||
@@ -1330,7 +1359,7 @@ symptom was a hang during process exit. A workaround was installed.</p>
|
||||
branch off of BSD and therefore requires socket option SO_REUSEPORT.</p>
|
||||
|
||||
<center>
|
||||
<h2>Changes since 3.14.1</h2>
|
||||
<h2>Changes between 3.14.1 and 3.14.2</h2>
|
||||
</center>
|
||||
|
||||
<p><strong>Build System</strong></p>
|
||||
@@ -1417,7 +1446,7 @@ that it ignores case.</p>
|
||||
macParseDefns was not correct.</p>
|
||||
|
||||
<center>
|
||||
<h2>Changes since beta2</h2>
|
||||
<h2>Changes between 3.14.0beta2 and 3.14.1</h2>
|
||||
</center>
|
||||
|
||||
<p><strong>function - New Database Definition Keyword</strong></p>
|
||||
|
||||
@@ -18,8 +18,23 @@
|
||||
new release of EPICS Base. Additions and ammendments to this list are
|
||||
welcome.</p>
|
||||
|
||||
<h3>The Release Process</h3>
|
||||
|
||||
<p>The version released on the Feature Freeze date is designated the first
|
||||
pre-release, <tt>-pre1</tt>. The first Release Candidate <tt>-RC1</tt> is the
|
||||
first version that has undergone widespread testing and which has no known
|
||||
problems in it that are slated to be fixed in this release. New versions should
|
||||
be made at about weekly intervals during the testing and debugging process, and
|
||||
will be designated as either pre-release versions or Release Candidates by the
|
||||
Release Manager. A Release Candidate that has received widespread testing for a
|
||||
week without any additional problems being discovered or CVS commits being made
|
||||
can be designated as the final release.</p>
|
||||
|
||||
<h3>Roles</h3>
|
||||
|
||||
<p>The following roles are used, in addition to the names of individuals who
|
||||
have been responsible for specific tasks in the past:</p>
|
||||
|
||||
<dl>
|
||||
<dt><strong>Release Manager</strong></dt>
|
||||
<dd>Responsible for the release</dd>
|
||||
@@ -27,8 +42,6 @@ have been responsible for specific tasks in the past:</p>
|
||||
<dd>Responsible for individual operating system platforms</dd>
|
||||
</dl>
|
||||
|
||||
<p></p>
|
||||
|
||||
<table border="1" width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
@@ -55,13 +68,15 @@ have been responsible for specific tasks in the past:</p>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Release Manager</td>
|
||||
<td>Set a date by which all CVS commits must be done, after which
|
||||
commits should only be to fix problems that show up during Final
|
||||
Testing.</td>
|
||||
<td>Set the Feature Freeze date, by which time all CVS commits for
|
||||
enhancements and new functionality should have been completed. After
|
||||
this date, commits should only be made to fix problems that show up
|
||||
during testing.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Release Manager</td>
|
||||
<td>Release Manager &<br />
|
||||
all developers</td>
|
||||
<td>Ensure that documentation will be updated before the release date:
|
||||
<ul>
|
||||
<li>Application Developers Guide</li>
|
||||
@@ -72,25 +87,84 @@ have been responsible for specific tasks in the past:</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>?</td>
|
||||
<td>...</td>
|
||||
<th colspan="3">Creating pre-release and Release Candidate versions</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="3">Final testing</th>
|
||||
<td> </td>
|
||||
<td>Janet Anderson</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. Pre-release version tags take the form
|
||||
<tt>R<i>x</i>-<i>y</i>-<i>z</i>-pre<i>n</i></tt> while Release
|
||||
Candidate tags take the form
|
||||
<tt>R<i>x</i>-<i>y</i>-<i>z</i>-RC<i>m</i></tt>.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Janet Anderson</td>
|
||||
<td>Export the tagged version and create a tarfile of the result:
|
||||
<blockquote><tt>
|
||||
cvs export -kv -d base-x.y.z-pre1 -r Rx-y-z-pre1 epics/base<br />
|
||||
tar cfz baseRx.y.z-pre1.tar.gz base-x.y.z-pre1
|
||||
</tt></blockquote></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Janet Anderson</td>
|
||||
<td>Test the tar file by extracting its contents and building it on at
|
||||
least one supported platform</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Janet Anderson</td>
|
||||
<td>Copy the tar file to the Base download area of the website</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Andrew Johnson</td>
|
||||
<td>Create or update a website subdirectory to hold the release
|
||||
documentation, and copy in the files from the base/documentation
|
||||
directory of the tarfile.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Andrew Johnson</td>
|
||||
<td>Create or modify the webpage for the new release with links to the
|
||||
release documents and tar file. Pre-release versions should use the
|
||||
page and URL for the final release version number.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Andrew Johnson</td>
|
||||
<td>Add the new pre-release tar file to the website Base download index
|
||||
page.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="3">Testing</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Platform Developers</td>
|
||||
<td>Run the Soft IOC tests in mrkSoftTest on all available
|
||||
<td>Run the Soft IOC tests from mrkSoftTest on all available
|
||||
platforms.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Platform Developers</td>
|
||||
<td>Check that all makeBaseApp templates build and run properly, all
|
||||
xxxApp and xxxBoot types and any internal options, e.g. standalone
|
||||
sncExample appliction, STATIC_BUILD=YES.</td>
|
||||
xxxApp and xxxBoot types and any internal options, e.g. setting
|
||||
STATIC_BUILD=YES in the configure/CONFIG_SITE.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Platform Developers</td>
|
||||
<td>Build the SNL Sequencer against this version of Base, and check that
|
||||
the makeBaseApp example builds and runs correctly with it.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
@@ -107,7 +181,7 @@ have been responsible for specific tasks in the past:</p>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Release Manager</td>
|
||||
<td>Check that the documentation has been updated:
|
||||
<td>Check that documentation has been updated:
|
||||
<ul>
|
||||
<li>Application Developers Guide</li>
|
||||
<li>Release Notes</li>
|
||||
@@ -116,21 +190,18 @@ have been responsible for specific tasks in the past:</p>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>?</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="3">Release Approval</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Release Manager</td>
|
||||
<td>Obtain a positive 'Ok to release' from all platform developers.</td>
|
||||
<td>Obtain a positive 'Ok to release' from all platform developers when a
|
||||
Release Candidate version has gone a whole week without any issues being
|
||||
reported.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="3">Make the release</th>
|
||||
<th colspan="3">Creating the final release version</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
@@ -141,15 +212,17 @@ have been responsible for specific tasks in the past:</p>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Janet Anderson</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>
|
||||
<td>Tag the module in CVS. Official base release version tags take the
|
||||
form <tt>R<i>x</i>-<i>y</i>-<i>z</i>[-<i>n</i>]</tt></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Janet Anderson</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>
|
||||
<td>Export the tagged version and create a tarfile of the result:
|
||||
<blockquote><tt>
|
||||
cvs export -kv -d base-x.y.z -r Rx-y-z epics/base<br />
|
||||
tar cfz baseRx.y.z.tar.gz base-x.y.z
|
||||
</tt></blockquote></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
@@ -165,20 +238,15 @@ have been responsible for specific tasks in the past:</p>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Andrew Johnson</td>
|
||||
<td>Create a new website subdirectory to hold the release
|
||||
<td>Update the website subdirectory that holds the release
|
||||
documentation, and copy in the files from the base/documentation
|
||||
directory of the tarfile</td>
|
||||
directory of the tarfile.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Andrew Johnson</td>
|
||||
<td>Create a webpage for the new release with links to the release
|
||||
documents and tar file</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>?</td>
|
||||
<td>...</td>
|
||||
<td>Update the webpage for the new release with links to the release
|
||||
documents and tar file.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="3">Announce it</th>
|
||||
@@ -214,14 +282,9 @@ have been responsible for specific tasks in the past:</p>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Andrew Johnson</td>
|
||||
<td>Add an entry to the website News page, linking to the new
|
||||
<td>Add an entry to the website News page, linking to the new version
|
||||
webpage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>?</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
|
||||
19
src/Makefile
19
src/Makefile
@@ -1,11 +1,10 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# Copyright (c) 2006 UChicago Argonne LLC, 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.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Id$
|
||||
@@ -14,13 +13,9 @@
|
||||
TOP = ..
|
||||
include $(TOP)/configure/CONFIG
|
||||
|
||||
#
|
||||
# for c++ build add the dirs gdd and cas after ca
|
||||
# (and uncomment the c++ files in src/lbCom/Makefile.Unix)
|
||||
#
|
||||
DIRS += makeBaseApp
|
||||
DIRS += makeBaseExt
|
||||
DIRS += libCom
|
||||
DIRS += RTEMS
|
||||
DIRS += libCom/test
|
||||
DIRS += toolsComm
|
||||
DIRS += ca
|
||||
DIRS += dbStatic
|
||||
@@ -38,12 +33,12 @@ DIRS += dev
|
||||
DIRS += misc
|
||||
DIRS += iocsh
|
||||
DIRS += vxWorks
|
||||
DIRS += RTEMS
|
||||
DIRS += softIoc
|
||||
DIRS += libCom/test
|
||||
DIRS += gdd
|
||||
DIRS += cas
|
||||
DIRS += makeBaseApp
|
||||
DIRS += excas
|
||||
DIRS += makeBaseExt
|
||||
|
||||
include $(TOP)/configure/RULES_DIRS
|
||||
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# Copyright (c) 2006 UChicago Argonne LLC, 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
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
TOP=../..
|
||||
@@ -32,7 +31,7 @@ asIoc_RCS_WIN32 = asIoc.rc
|
||||
|
||||
PROD_HOST = ascheck
|
||||
ascheck_SRCS = ascheck.c
|
||||
PROD_LIBS = asHost dbStaticHost Com
|
||||
PROD_LIBS = asHost dbStaticHost ca Com
|
||||
|
||||
# For R3.13 compatibility only
|
||||
ifeq ($(strip $(COMPAT_313)),YES)
|
||||
@@ -42,13 +41,9 @@ endif
|
||||
|
||||
include $(TOP)/configure/RULES
|
||||
|
||||
# Extra rule since asLib_lex.c is included in asLib.c
|
||||
# In my opinion, these objects should really be built
|
||||
# independently.
|
||||
asLib.c: asLib_lex.c ../asLibRoutines.c
|
||||
|
||||
$(INSTALL_INC)/asLib.h:../asLib.h
|
||||
# Extra rule since asLib_lex.c is included by asLib.c
|
||||
asLib$(OBJ): asLib_lex.c
|
||||
|
||||
clean::
|
||||
@$(RM) asLib.c asLib_lex.c
|
||||
@$(RM) asLib.c asLib_lex.c
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
#define INCasLibh
|
||||
|
||||
#include "shareLib.h"
|
||||
#include "ellLib.h"
|
||||
#include "errlog.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
@@ -8,9 +8,8 @@
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
%{
|
||||
static int yyerror();
|
||||
static int yyerror(char *);
|
||||
static int yy_start;
|
||||
static int myParse();
|
||||
#include "asLibRoutines.c"
|
||||
static int yyFailed = FALSE;
|
||||
static int line_num=1;
|
||||
@@ -207,8 +206,7 @@ rule_hag_list_name: tokenSTRING
|
||||
|
||||
#include "asLib_lex.c"
|
||||
|
||||
static int yyerror(str)
|
||||
char *str;
|
||||
static int yyerror(char *str)
|
||||
{
|
||||
if (strlen(str)) epicsPrintf("%s\n", str);
|
||||
epicsPrintf("Access Security file error at line %d\n",
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
#include "epicsStdioRedirect.h"
|
||||
#include "dbDefs.h"
|
||||
#include "epicsThread.h"
|
||||
#include "ellLib.h"
|
||||
#include "cantProceed.h"
|
||||
#include "epicsMutex.h"
|
||||
#include "epicsPrint.h"
|
||||
@@ -27,8 +26,6 @@
|
||||
#include "freeList.h"
|
||||
#include "macLib.h"
|
||||
#include "postfix.h"
|
||||
#include "errlog.h"
|
||||
#include "ellLib.h"
|
||||
|
||||
static epicsMutexId asLock;
|
||||
#define LOCK epicsMutexMustLock(asLock)
|
||||
@@ -45,9 +42,10 @@ epicsShareDef int asActive = FALSE;
|
||||
static void *freeListPvt = NULL;
|
||||
|
||||
|
||||
#define RPCL_LEN 184
|
||||
#define DEFAULT "DEFAULT"
|
||||
|
||||
/* Defined in asLib.y */
|
||||
static int myParse(ASINPUTFUNCPTR inputfunction);
|
||||
|
||||
/*private routines */
|
||||
static long asAddMemberPvt(ASMEMBERPVT *pasMemberPvt,const char *asgName);
|
||||
@@ -123,8 +121,8 @@ long epicsShareAPI asInitialize(ASINPUTFUNCPTR inputfunction)
|
||||
while(puagname) {
|
||||
pgphentry = gphAdd(pasbasenew->phash,puagname->user,puag);
|
||||
if(!pgphentry) {
|
||||
epicsPrintf("UAG %s duplicate user = %s\n",
|
||||
puag->name, puagname->user);
|
||||
epicsPrintf("Duplicated user '%s' in UAG '%s'\n",
|
||||
puagname->user, puag->name);
|
||||
}
|
||||
puagname = (UAGNAME *)ellNext((ELLNODE *)puagname);
|
||||
}
|
||||
@@ -136,8 +134,8 @@ long epicsShareAPI asInitialize(ASINPUTFUNCPTR inputfunction)
|
||||
while(phagname) {
|
||||
pgphentry = gphAdd(pasbasenew->phash,phagname->host,phag);
|
||||
if(!pgphentry) {
|
||||
epicsPrintf("HAG %s duplicate host = %s\n",
|
||||
phag->name,phagname->host);
|
||||
epicsPrintf("Duplicated host '%s' in HAG '%s'\n",
|
||||
phagname->host, phag->name);
|
||||
}
|
||||
phagname = (HAGNAME *)ellNext((ELLNODE *)phagname);
|
||||
}
|
||||
@@ -239,7 +237,7 @@ long epicsShareAPI asInitFP(FILE *fp,const char *substitutions)
|
||||
errMessage(status,"asInitFP: macCreateHandle error");
|
||||
return(status);
|
||||
}
|
||||
macParseDefns(macHandle,(char *)substitutions,&macPairs);
|
||||
macParseDefns(macHandle,substitutions,&macPairs);
|
||||
if(macPairs ==NULL) {
|
||||
macDeleteHandle(macHandle);
|
||||
macHandle = NULL;
|
||||
@@ -1177,7 +1175,7 @@ static long asHagAddHost(HAG *phag,const char *host)
|
||||
if (!phag) return 0;
|
||||
phagname = asCalloc(1, sizeof(HAGNAME)+strlen(host)+1);
|
||||
phagname->host = (char *)(phagname+1);
|
||||
for (i = 0; i < strlen(phagname->host); i++) {
|
||||
for (i = 0; i < strlen(host); i++) {
|
||||
phagname->host[i] = (char)tolower((int)host[i]);
|
||||
}
|
||||
ellAdd(&phag->list, (ELLNODE *)phagname);
|
||||
|
||||
@@ -21,7 +21,7 @@ static ASINPUTFUNCPTR *my_yyinput;
|
||||
#undef YY_INPUT
|
||||
#define YY_INPUT(b,r,ms) (r=(*my_yyinput)((char *)b,ms))
|
||||
|
||||
static int yyreset()
|
||||
static int yyreset(void)
|
||||
{
|
||||
line_num=1;
|
||||
BEGIN INITIAL;
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "dbDefs.h"
|
||||
#include "errlog.h"
|
||||
#include "asLib.h"
|
||||
#include "dbStaticLib.h"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||
"http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
||||
<title>EPICS R3.14 Channel Access Reference Manual</title>
|
||||
</head>
|
||||
|
||||
<body lang="en" bgcolor="#FFFFFF">
|
||||
<body lang="en">
|
||||
<hr>
|
||||
|
||||
<h1>EPICS R3.14 Channel Access Reference Manual</h1>
|
||||
@@ -14,32 +14,34 @@
|
||||
Jeffrey O. Hill
|
||||
</address>
|
||||
|
||||
<p><font size="2">Los Alamos National Laboratory<br>
|
||||
SNS Division</font></p>
|
||||
<p><span style="font-size: x-small; font-weight:lighter;">Los Alamos National
|
||||
Laboratory, SNS Division</span></p>
|
||||
<address>
|
||||
Ralph Lange
|
||||
</address>
|
||||
|
||||
<p><font size="2">BESSY</font></p>
|
||||
<p><span style="font-size: x-small; font-weight:lighter;">BESSY</span></p>
|
||||
|
||||
<p><font size="1">Copyright © 2002 The University of Chicago, as Operator of
|
||||
Argonne National Laboratory.<br>
|
||||
<p><span style="font-size: xx-small; font-weight:lighter;">Copyright © 2002
|
||||
The University of Chicago, as Operator of Argonne National Laboratory.<br>
|
||||
Copyright © 2002 The Regents of the University of California, as Operator of
|
||||
Los Alamos National Laboratory.<br>
|
||||
Copyright © 2002 Berliner Elektronenspeicherringgesellschaft für
|
||||
Synchrotronstrahlung.</font></p>
|
||||
Synchrotronstrahlung.</span></p>
|
||||
|
||||
<p><font size="1">EPICS BASE Versions 3.13.7 and higher are distributed
|
||||
subject to a Software License Agreement found in the file LICENSE that is
|
||||
included with this distribution.</font></p>
|
||||
<p><span style="font-size: xx-small; font-weight:lighter;">EPICS BASE
|
||||
Versions 3.13.7 and higher are distributed subject to a Software License
|
||||
Agreement found in the file LICENSE that is included with this
|
||||
distribution.</span></p>
|
||||
|
||||
<p><a href="http://www.w3.org/Amaya/"><img
|
||||
src="http://www.w3.org/Amaya/Icons/w3c-amaya.gif" alt="W3C-Amaya" height="31"
|
||||
width="88"></a> <a href="http://validator.w3.org/check/referer"> <img
|
||||
border="0" src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"
|
||||
width="88"></a> <a href="http://validator.w3.org/check/referer"><img
|
||||
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"
|
||||
height="31" width="88"></a></p>
|
||||
|
||||
<p><small>Modified on $Date$</small></p>
|
||||
<p><small><span style="font-size: smaller; font-weight:lighter;">Modified on
|
||||
$Date$</span></small></p>
|
||||
<hr>
|
||||
|
||||
<h2>Table of Contents</h2>
|
||||
@@ -830,9 +832,9 @@ CA server employed by iocCore does not implemet this feature</em>.</p>
|
||||
<h4>Ignoring Process Variable Name Resolution Requests From Certain Hosts</h4>
|
||||
|
||||
<p>Name resolution requests originating from any of the IP addresses
|
||||
specified in the EPICS_CAS_IGNORE_ADDR_LIST parameter are not replied to.<em>
|
||||
In R3.14 and previous releases the CA server employed by iocCore does not
|
||||
implemet this feature.</em></p>
|
||||
specified in the EPICS_CAS_IGNORE_ADDR_LIST parameter are not replied
|
||||
to.<em>In R3.14 and previous releases the CA server employed by iocCore does
|
||||
not implemet this feature.</em></p>
|
||||
|
||||
<h4>Client Configuration that also Applies to Servers</h4>
|
||||
|
||||
@@ -2190,7 +2192,7 @@ It is not possible to attach a thread to a non-preemptive CA context created
|
||||
explicitly <em>or implicitly</em> with
|
||||
ca_create_context(ca_disable_preemptive_callback). Once a thread has joined
|
||||
with a CA context it need only make ordinary ca_xxxx() library calls to use
|
||||
the context. </p>
|
||||
the context.</p>
|
||||
|
||||
<p>A CA client library context can be shut down and cleaned up, after
|
||||
destroying any channels or application specific threads that are attached to
|
||||
|
||||
@@ -2545,7 +2545,7 @@ void verifyImmediateTearDown ( const char * pName,
|
||||
enum ca_preemptive_callback_select select,
|
||||
unsigned interestLevel )
|
||||
{
|
||||
unsigned i;
|
||||
int i;
|
||||
|
||||
showProgressBegin ( "verifyImmediateTearDown", interestLevel );
|
||||
|
||||
|
||||
@@ -45,124 +45,6 @@ bool comBuf::flushToWire ( wireSendAdapter & wire, const epicsTime & currentTime
|
||||
return true;
|
||||
}
|
||||
|
||||
unsigned comBuf::push ( const epicsInt16 * pValue, unsigned nElem )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
unsigned nBytes = sizeof ( *pValue ) * nElem;
|
||||
if ( nBytes > available ) {
|
||||
nElem = available / sizeof ( *pValue );
|
||||
}
|
||||
for ( unsigned i = 0u; i < nElem; i++ ) {
|
||||
this->buf[ index + 0 ] =
|
||||
static_cast < epicsUInt8 > ( pValue[i] >> 8u );
|
||||
this->buf[ index + 1 ] =
|
||||
static_cast < epicsUInt8 > ( pValue[i] >> 0u );
|
||||
index += sizeof ( *pValue );
|
||||
}
|
||||
this->nextWriteIndex = index;
|
||||
return nElem;
|
||||
}
|
||||
|
||||
unsigned comBuf::push ( const epicsUInt16 * pValue, unsigned nElem )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
unsigned nBytes = sizeof ( *pValue ) * nElem;
|
||||
if ( nBytes > available ) {
|
||||
nElem = available / sizeof ( *pValue );
|
||||
}
|
||||
for ( unsigned i = 0u; i < nElem; i++ ) {
|
||||
this->buf[ index + 0 ] =
|
||||
static_cast < epicsUInt8 > ( pValue[i] >> 8u );
|
||||
this->buf[ index + 1 ] =
|
||||
static_cast < epicsUInt8 > ( pValue[i] >> 0u );
|
||||
index += sizeof ( *pValue );
|
||||
}
|
||||
this->nextWriteIndex = index;
|
||||
return nElem;
|
||||
}
|
||||
|
||||
unsigned comBuf::push ( const epicsInt32 * pValue, unsigned nElem )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
unsigned nBytes = sizeof ( *pValue ) * nElem;
|
||||
if ( nBytes > available ) {
|
||||
nElem = available / sizeof ( *pValue );
|
||||
}
|
||||
for ( unsigned i = 0u; i < nElem; i++ ) {
|
||||
this->buf[ index + 0 ] =
|
||||
static_cast < epicsUInt8 > ( pValue[i] >> 24u );
|
||||
this->buf[ index + 1 ] =
|
||||
static_cast < epicsUInt8 > ( pValue[i] >> 16u );
|
||||
this->buf[ index + 2 ] =
|
||||
static_cast < epicsUInt8 > ( pValue[i] >> 8u );
|
||||
this->buf[ index + 3 ] =
|
||||
static_cast < epicsUInt8 > ( pValue[i] >> 0u );
|
||||
index += sizeof ( *pValue );
|
||||
}
|
||||
this->nextWriteIndex = index;
|
||||
return nElem;
|
||||
}
|
||||
|
||||
unsigned comBuf::push ( const epicsUInt32 * pValue, unsigned nElem )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
unsigned nBytes = sizeof ( *pValue ) * nElem;
|
||||
if ( nBytes > available ) {
|
||||
nElem = available / sizeof ( *pValue );
|
||||
}
|
||||
for ( unsigned i = 0u; i < nElem; i++ ) {
|
||||
this->buf[ index + 0 ] =
|
||||
static_cast < epicsUInt8 > ( pValue[i] >> 24u );
|
||||
this->buf[ index + 1 ] =
|
||||
static_cast < epicsUInt8 > ( pValue[i] >> 16u );
|
||||
this->buf[ index + 2 ] =
|
||||
static_cast < epicsUInt8 > ( pValue[i] >> 8u );
|
||||
this->buf[ index + 3 ] =
|
||||
static_cast < epicsUInt8 > ( pValue[i] >> 0u );
|
||||
index += sizeof ( *pValue );
|
||||
}
|
||||
this->nextWriteIndex = index;
|
||||
return nElem;
|
||||
}
|
||||
|
||||
unsigned comBuf::push ( const epicsFloat32 * pValue, unsigned nElem )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
unsigned nBytes = sizeof ( *pValue ) * nElem;
|
||||
if ( nBytes > available ) {
|
||||
nElem = available / sizeof ( *pValue );
|
||||
}
|
||||
for ( unsigned i = 0u; i < nElem; i++ ) {
|
||||
// allow native floating point formats to be converted to IEEE
|
||||
WireSetFloat32 ( pValue[i], &this->buf[index] );
|
||||
index += sizeof ( *pValue );
|
||||
}
|
||||
this->nextWriteIndex = index;
|
||||
return nElem;
|
||||
}
|
||||
|
||||
unsigned comBuf::push ( const epicsFloat64 * pValue, unsigned nElem )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
unsigned nBytes = sizeof ( *pValue ) * nElem;
|
||||
if ( nBytes > available ) {
|
||||
nElem = available / sizeof ( *pValue );
|
||||
}
|
||||
for ( unsigned i = 0u; i < nElem; i++ ) {
|
||||
// allow native floating point formats to be converted to IEEE
|
||||
WireSetFloat64 ( pValue[i], &this->buf[index] );
|
||||
index += sizeof ( *pValue );
|
||||
}
|
||||
this->nextWriteIndex = index;
|
||||
return nElem;
|
||||
}
|
||||
|
||||
// throwing the exception from a function that isnt inline
|
||||
// shrinks the GNU compiled object code
|
||||
void comBuf::throwInsufficentBytesException ()
|
||||
|
||||
261
src/ca/comBuf.h
261
src/ca/comBuf.h
@@ -25,8 +25,7 @@
|
||||
#define comBufh
|
||||
|
||||
#include <new>
|
||||
|
||||
#include <string.h>
|
||||
#include <cstring>
|
||||
|
||||
#include "epicsAssert.h"
|
||||
#include "epicsTypes.h"
|
||||
@@ -81,23 +80,12 @@ public:
|
||||
void clear ();
|
||||
unsigned copyInBytes ( const void *pBuf, unsigned nBytes );
|
||||
unsigned push ( comBuf & );
|
||||
bool push ( const epicsInt8 value );
|
||||
bool push ( const epicsUInt8 value );
|
||||
bool push ( const epicsInt16 value );
|
||||
bool push ( const epicsUInt16 value );
|
||||
bool push ( const epicsInt32 value );
|
||||
bool push ( const epicsUInt32 value );
|
||||
bool push ( const epicsFloat32 & value );
|
||||
bool push ( const epicsFloat64 & value );
|
||||
bool push ( const epicsOldString & value );
|
||||
template < class T >
|
||||
bool push ( const T & value );
|
||||
template < class T >
|
||||
unsigned push ( const T * pValue, unsigned nElem );
|
||||
unsigned push ( const epicsInt8 * pValue, unsigned nElem );
|
||||
unsigned push ( const epicsUInt8 * pValue, unsigned nElem );
|
||||
unsigned push ( const epicsInt16 * pValue, unsigned nElem );
|
||||
unsigned push ( const epicsUInt16 * pValue, unsigned nElem );
|
||||
unsigned push ( const epicsInt32 * pValue, unsigned nElem );
|
||||
unsigned push ( const epicsUInt32 * pValue, unsigned nElem );
|
||||
unsigned push ( const epicsFloat32 * pValue, unsigned nElem );
|
||||
unsigned push ( const epicsFloat64 * pValue, unsigned nElem );
|
||||
unsigned push ( const epicsOldString * pValue, unsigned nElem );
|
||||
void commitIncomming ();
|
||||
void clearUncommittedIncomming ();
|
||||
@@ -111,9 +99,8 @@ public:
|
||||
bool success;
|
||||
bool nowEmpty;
|
||||
};
|
||||
popStatus pop ( epicsUInt8 & );
|
||||
popStatus pop ( epicsUInt16 & );
|
||||
popStatus pop ( epicsUInt32 & );
|
||||
template < class T >
|
||||
popStatus pop ( T & );
|
||||
static void throwInsufficentBytesException ();
|
||||
void * operator new ( size_t size,
|
||||
comBufMemoryManager & );
|
||||
@@ -146,29 +133,29 @@ inline comBuf::comBuf () : commitIndex ( 0u ),
|
||||
{
|
||||
}
|
||||
|
||||
inline void comBuf::clear ()
|
||||
inline void comBuf :: clear ()
|
||||
{
|
||||
this->commitIndex = 0u;
|
||||
this->nextWriteIndex = 0u;
|
||||
this->nextReadIndex = 0u;
|
||||
}
|
||||
|
||||
inline unsigned comBuf::unoccupiedBytes () const
|
||||
inline unsigned comBuf :: unoccupiedBytes () const
|
||||
{
|
||||
return sizeof ( this->buf ) - this->nextWriteIndex;
|
||||
}
|
||||
|
||||
inline unsigned comBuf::occupiedBytes () const
|
||||
inline unsigned comBuf :: occupiedBytes () const
|
||||
{
|
||||
return this->commitIndex - this->nextReadIndex;
|
||||
}
|
||||
|
||||
inline unsigned comBuf::uncommittedBytes () const
|
||||
inline unsigned comBuf :: uncommittedBytes () const
|
||||
{
|
||||
return this->nextWriteIndex - this->commitIndex;
|
||||
}
|
||||
|
||||
inline unsigned comBuf::push ( comBuf & bufIn )
|
||||
inline unsigned comBuf :: push ( comBuf & bufIn )
|
||||
{
|
||||
unsigned nBytes = this->copyInBytes (
|
||||
& bufIn.buf[ bufIn.nextReadIndex ],
|
||||
@@ -177,12 +164,12 @@ inline unsigned comBuf::push ( comBuf & bufIn )
|
||||
return nBytes;
|
||||
}
|
||||
|
||||
inline unsigned comBuf::capacityBytes ()
|
||||
inline unsigned comBuf :: capacityBytes ()
|
||||
{
|
||||
return comBufSize;
|
||||
}
|
||||
|
||||
inline void comBuf::fillFromWire (
|
||||
inline void comBuf :: fillFromWire (
|
||||
wireRecvAdapter & wire, statusWireIO & stat )
|
||||
{
|
||||
wire.recvBytes (
|
||||
@@ -193,147 +180,30 @@ inline void comBuf::fillFromWire (
|
||||
}
|
||||
}
|
||||
|
||||
inline bool comBuf::push ( const epicsInt8 value )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned nextIndex = index + sizeof ( value );
|
||||
if ( nextIndex <= sizeof ( this->buf ) ) {
|
||||
this->buf[ index ] = static_cast < epicsUInt8 > ( value );
|
||||
this->nextWriteIndex = nextIndex;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
inline bool comBuf::push ( const epicsUInt8 value )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned nextIndex = index + sizeof ( value );
|
||||
if ( nextIndex <= sizeof ( this->buf ) ) {
|
||||
this->buf[ index ] = value;
|
||||
this->nextWriteIndex = nextIndex;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
inline bool comBuf::push ( const epicsInt16 value )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned nextIndex = index + sizeof ( value );
|
||||
if ( nextIndex <= sizeof ( this->buf ) ) {
|
||||
this->buf[ index + 0u ] =
|
||||
static_cast < epicsUInt8 > ( value >> 8u );
|
||||
this->buf[ index + 1u ] =
|
||||
static_cast < epicsUInt8 > ( value >> 0u );
|
||||
this->nextWriteIndex = nextIndex;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
inline bool comBuf::push ( const epicsUInt16 value )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned nextIndex = index + sizeof ( value );
|
||||
if ( nextIndex <= sizeof ( this->buf ) ) {
|
||||
this->buf[ index + 0u ] =
|
||||
static_cast < epicsUInt8 > ( value >> 8u );
|
||||
this->buf[ index + 1u ] =
|
||||
static_cast < epicsUInt8 > ( value >> 0u );
|
||||
this->nextWriteIndex = nextIndex;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
inline bool comBuf::push ( const epicsInt32 value )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned nextIndex = index + sizeof ( value );
|
||||
if ( nextIndex <= sizeof ( this->buf ) ) {
|
||||
this->buf[ index + 0u ] =
|
||||
static_cast < epicsUInt8 > ( value >> 24u );
|
||||
this->buf[ index + 1u ] =
|
||||
static_cast < epicsUInt8 > ( value >> 16u );
|
||||
this->buf[ index + 2u ] =
|
||||
static_cast < epicsUInt8 > ( value >> 8u );
|
||||
this->buf[ index + 3u ] =
|
||||
static_cast < epicsUInt8 > ( value >> 0u );
|
||||
this->nextWriteIndex = nextIndex;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
inline bool comBuf::push ( const epicsUInt32 value )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned nextIndex = index + sizeof ( value );
|
||||
if ( nextIndex <= sizeof ( this->buf ) ) {
|
||||
this->buf[ index + 0u ] =
|
||||
static_cast < epicsUInt8 > ( value >> 24u );
|
||||
this->buf[ index + 1u ] =
|
||||
static_cast < epicsUInt8 > ( value >> 16u );
|
||||
this->buf[ index + 2u ] =
|
||||
static_cast < epicsUInt8 > ( value >> 8u );
|
||||
this->buf[ index + 3u ] =
|
||||
static_cast < epicsUInt8 > ( value >> 0u );
|
||||
this->nextWriteIndex = nextIndex;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
inline bool comBuf::push ( const epicsFloat32 & value )
|
||||
template < class T >
|
||||
inline bool comBuf :: push ( const T & value )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
if ( sizeof ( value ) > available ) {
|
||||
return false;
|
||||
}
|
||||
// allow native floating point formats to be converted to IEEE
|
||||
WireSetFloat32 ( value, & this->buf[index] );
|
||||
WireSet ( value, & this->buf[index] );
|
||||
this->nextWriteIndex = index + sizeof ( value );
|
||||
return true;
|
||||
}
|
||||
|
||||
inline bool comBuf::push ( const epicsFloat64 & value )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
if ( sizeof ( value ) > available ) {
|
||||
return false;
|
||||
}
|
||||
// allow native floating point formats to be converted to IEEE
|
||||
WireSetFloat64 ( value, & this->buf[index] );
|
||||
this->nextWriteIndex = index + sizeof ( value );
|
||||
return true;
|
||||
}
|
||||
|
||||
inline bool comBuf::push ( const epicsOldString & value )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
if ( sizeof ( value ) > available ) {
|
||||
return false;
|
||||
}
|
||||
memcpy ( &this->buf[ index ], & value, sizeof ( value ) );
|
||||
this->nextWriteIndex = index + sizeof ( value );
|
||||
return true;
|
||||
}
|
||||
|
||||
inline unsigned comBuf::push ( const epicsInt8 *pValue, unsigned nElem )
|
||||
inline unsigned comBuf :: push ( const epicsInt8 *pValue, unsigned nElem )
|
||||
{
|
||||
return copyInBytes ( pValue, nElem );
|
||||
}
|
||||
|
||||
inline unsigned comBuf::push ( const epicsUInt8 *pValue, unsigned nElem )
|
||||
inline unsigned comBuf :: push ( const epicsUInt8 *pValue, unsigned nElem )
|
||||
{
|
||||
return copyInBytes ( pValue, nElem );
|
||||
}
|
||||
|
||||
inline unsigned comBuf::push ( const epicsOldString * pValue, unsigned nElem )
|
||||
inline unsigned comBuf :: push ( const epicsOldString * pValue, unsigned nElem )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
@@ -347,17 +217,35 @@ inline unsigned comBuf::push ( const epicsOldString * pValue, unsigned nElem )
|
||||
return nElem;
|
||||
}
|
||||
|
||||
inline void comBuf::commitIncomming ()
|
||||
template < class T >
|
||||
unsigned comBuf :: push ( const T * pValue, unsigned nElem )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
unsigned nBytes = sizeof ( *pValue ) * nElem;
|
||||
if ( nBytes > available ) {
|
||||
nElem = available / sizeof ( *pValue );
|
||||
}
|
||||
for ( unsigned i = 0u; i < nElem; i++ ) {
|
||||
// allow native floating point formats to be converted to IEEE
|
||||
WireSet( pValue[i], &this->buf[index] );
|
||||
index += sizeof ( *pValue );
|
||||
}
|
||||
this->nextWriteIndex = index;
|
||||
return nElem;
|
||||
}
|
||||
|
||||
inline void comBuf :: commitIncomming ()
|
||||
{
|
||||
this->commitIndex = this->nextWriteIndex;
|
||||
}
|
||||
|
||||
inline void comBuf::clearUncommittedIncomming ()
|
||||
inline void comBuf :: clearUncommittedIncomming ()
|
||||
{
|
||||
this->nextWriteIndex = this->commitIndex;
|
||||
}
|
||||
|
||||
inline bool comBuf::copyInAllBytes ( const void *pBuf, unsigned nBytes )
|
||||
inline bool comBuf :: copyInAllBytes ( const void *pBuf, unsigned nBytes )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
@@ -369,7 +257,7 @@ inline bool comBuf::copyInAllBytes ( const void *pBuf, unsigned nBytes )
|
||||
return false;
|
||||
}
|
||||
|
||||
inline unsigned comBuf::copyInBytes ( const void * pBuf, unsigned nBytes )
|
||||
inline unsigned comBuf :: copyInBytes ( const void * pBuf, unsigned nBytes )
|
||||
{
|
||||
unsigned index = this->nextWriteIndex;
|
||||
unsigned available = sizeof ( this->buf ) - index;
|
||||
@@ -381,7 +269,7 @@ inline unsigned comBuf::copyInBytes ( const void * pBuf, unsigned nBytes )
|
||||
return nBytes;
|
||||
}
|
||||
|
||||
inline bool comBuf::copyOutAllBytes ( void * pBuf, unsigned nBytes )
|
||||
inline bool comBuf :: copyOutAllBytes ( void * pBuf, unsigned nBytes )
|
||||
{
|
||||
unsigned index = this->nextReadIndex;
|
||||
unsigned occupied = this->commitIndex - index;
|
||||
@@ -393,7 +281,7 @@ inline bool comBuf::copyOutAllBytes ( void * pBuf, unsigned nBytes )
|
||||
return false;
|
||||
}
|
||||
|
||||
inline unsigned comBuf::copyOutBytes ( void *pBuf, unsigned nBytes )
|
||||
inline unsigned comBuf :: copyOutBytes ( void *pBuf, unsigned nBytes )
|
||||
{
|
||||
unsigned index = this->nextReadIndex;
|
||||
unsigned occupied = this->commitIndex - index;
|
||||
@@ -405,7 +293,7 @@ inline unsigned comBuf::copyOutBytes ( void *pBuf, unsigned nBytes )
|
||||
return nBytes;
|
||||
}
|
||||
|
||||
inline unsigned comBuf::removeBytes ( unsigned nBytes )
|
||||
inline unsigned comBuf :: removeBytes ( unsigned nBytes )
|
||||
{
|
||||
unsigned index = this->nextReadIndex;
|
||||
unsigned occupied = this->commitIndex - index;
|
||||
@@ -416,7 +304,8 @@ inline unsigned comBuf::removeBytes ( unsigned nBytes )
|
||||
return nBytes;
|
||||
}
|
||||
|
||||
inline comBuf::popStatus comBuf::pop ( epicsUInt8 & returnVal )
|
||||
template < class T >
|
||||
comBuf :: popStatus comBuf :: pop ( T & returnVal )
|
||||
{
|
||||
unsigned nrIndex = this->nextReadIndex;
|
||||
unsigned popIndex = nrIndex + sizeof ( returnVal );
|
||||
@@ -433,61 +322,7 @@ inline comBuf::popStatus comBuf::pop ( epicsUInt8 & returnVal )
|
||||
return status;
|
||||
}
|
||||
}
|
||||
returnVal = this->buf[ nrIndex ];
|
||||
this->nextReadIndex = popIndex;
|
||||
return status;
|
||||
}
|
||||
|
||||
inline comBuf::popStatus comBuf::pop ( epicsUInt16 & returnVal )
|
||||
{
|
||||
unsigned nrIndex = this->nextReadIndex;
|
||||
unsigned popIndex = nrIndex + sizeof ( returnVal );
|
||||
unsigned cIndex = this->commitIndex;
|
||||
popStatus status;
|
||||
status.success = true;
|
||||
status.nowEmpty = false;
|
||||
if ( popIndex >= cIndex ) {
|
||||
if ( popIndex == cIndex ) {
|
||||
status.nowEmpty = true;
|
||||
}
|
||||
else {
|
||||
status.success = false;
|
||||
return status;
|
||||
}
|
||||
}
|
||||
returnVal =
|
||||
static_cast < epicsUInt16 > (
|
||||
( this->buf[ nrIndex + 0 ] << 8u ) |
|
||||
this->buf[ nrIndex + 1 ]
|
||||
);
|
||||
this->nextReadIndex = popIndex;
|
||||
return status;
|
||||
}
|
||||
|
||||
inline comBuf::popStatus comBuf::pop ( epicsUInt32 & returnVal )
|
||||
{
|
||||
unsigned nrIndex = this->nextReadIndex;
|
||||
unsigned popIndex = nrIndex + sizeof ( returnVal );
|
||||
unsigned cIndex = this->commitIndex;
|
||||
popStatus status;
|
||||
status.success = true;
|
||||
status.nowEmpty = false;
|
||||
if ( popIndex >= cIndex ) {
|
||||
if ( popIndex == cIndex ) {
|
||||
status.nowEmpty = true;
|
||||
}
|
||||
else {
|
||||
status.success = false;
|
||||
return status;
|
||||
}
|
||||
}
|
||||
returnVal =
|
||||
static_cast < epicsUInt32 > (
|
||||
( this->buf[ nrIndex + 0 ] << 24u ) |
|
||||
( this->buf[ nrIndex + 1 ] << 16u ) |
|
||||
( this->buf[ nrIndex + 2 ] << 8u ) |
|
||||
this->buf[ nrIndex + 3 ]
|
||||
);
|
||||
WireGet ( & this->buf[ nrIndex ], returnVal );
|
||||
this->nextReadIndex = popIndex;
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -153,8 +153,7 @@ double netiiu::receiveWatchdogDelay (
|
||||
}
|
||||
|
||||
void netiiu::uninstallChanDueToSuccessfulSearchResponse (
|
||||
epicsGuard < epicsMutex > &, nciu &,
|
||||
const epicsTime & currentTime )
|
||||
epicsGuard < epicsMutex > &, nciu &, const epicsTime & )
|
||||
{
|
||||
throw std::runtime_error (
|
||||
"search response occured when not attached to udpiiu?" );
|
||||
|
||||
@@ -146,8 +146,10 @@ static bool makeSocket ( unsigned short port, bool reuseAddr, SOCKET * pSock )
|
||||
repeaterClient::repeaterClient ( const osiSockAddr &fromIn ) :
|
||||
from ( fromIn ), sock ( INVALID_SOCKET )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
unsigned port = ntohs ( from.ia.sin_port );
|
||||
debugPrintf ( ( "new client %u\n", port ) );
|
||||
#endif
|
||||
}
|
||||
|
||||
bool repeaterClient::connect ()
|
||||
@@ -209,15 +211,19 @@ bool repeaterClient::sendMessage ( const void *pBuf, unsigned bufSize ) // X aCC
|
||||
status = send ( this->sock, (char *) pBuf, bufSize, 0 );
|
||||
if ( status >= 0 ) {
|
||||
assert ( static_cast <unsigned> ( status ) == bufSize );
|
||||
#ifdef DEBUG
|
||||
epicsUInt16 port = ntohs ( this->from.ia.sin_port );
|
||||
debugPrintf ( ("Sent to %u\n", port ) );
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
int errnoCpy = SOCKERRNO;
|
||||
if ( errnoCpy == SOCK_ECONNREFUSED ) {
|
||||
#ifdef DEBUG
|
||||
epicsUInt16 port = ntohs ( this->from.ia.sin_port );
|
||||
debugPrintf ( ("Client refused message %u\n", port ) );
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
char sockErrBuf[64];
|
||||
@@ -233,8 +239,10 @@ repeaterClient::~repeaterClient ()
|
||||
if ( this->sock != INVALID_SOCKET ) {
|
||||
epicsSocketDestroy ( this->sock );
|
||||
}
|
||||
#ifdef DEBUG
|
||||
epicsUInt16 port = ntohs ( this->from.ia.sin_port );
|
||||
debugPrintf ( ( "Deleted client %u\n", port ) );
|
||||
#endif
|
||||
}
|
||||
|
||||
void * repeaterClient::operator new ( size_t ) // X aCC 361
|
||||
@@ -456,9 +464,11 @@ static void register_new_client ( osiSockAddr & from,
|
||||
client_list.remove ( *pNewClient );
|
||||
pNewClient->~repeaterClient ();
|
||||
freeList.release ( pNewClient );
|
||||
epicsUInt16 port = ntohs ( from.ia.sin_port );
|
||||
debugPrintf ( ( "Deleted repeater client=%u (error while sending ack)\n",
|
||||
port ) );
|
||||
# ifdef DEBUG
|
||||
epicsUInt16 port = ntohs ( from.ia.sin_port );
|
||||
debugPrintf ( ( "Deleted repeater client=%u (error while sending ack)\n",
|
||||
port ) );
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -198,7 +198,7 @@ void tcpRecvWatchdog::connectNotify (
|
||||
}
|
||||
|
||||
void tcpRecvWatchdog::sendTimeoutNotify (
|
||||
epicsGuard < epicsMutex > & cbGuard,
|
||||
epicsGuard < epicsMutex > & /* cbGuard */,
|
||||
epicsGuard < epicsMutex > & guard )
|
||||
{
|
||||
guard.assertIdenticalMutex ( this->mutex );
|
||||
|
||||
@@ -1367,7 +1367,7 @@ void tcpiiu::echoRequest ( epicsGuard < epicsMutex > & guard ) // X aCC 431
|
||||
{
|
||||
guard.assertIdenticalMutex ( this->mutex );
|
||||
|
||||
int command = CA_PROTO_ECHO;
|
||||
epicsUInt16 command = CA_PROTO_ECHO;
|
||||
if ( ! CA_V43 ( this->minorProtocolVersion ) ) {
|
||||
// we fake an echo to early server using a read sync
|
||||
command = CA_PROTO_READ_SYNC;
|
||||
|
||||
@@ -141,15 +141,6 @@ caStatus casPVI::attachToServer ( caServerI & cas )
|
||||
caStatus casPVI::updateEnumStringTable ( casCtx & ctxIn )
|
||||
{
|
||||
epicsGuard < epicsMutex > guard ( this->mutex );
|
||||
|
||||
//
|
||||
// keep trying to fill in the table if client disconnects
|
||||
// prevented previous asynchronous IO from finishing, but if
|
||||
// a previous client has succeeded then dont bother.
|
||||
//
|
||||
if ( this->enumStrTbl.numberOfStrings () > 0 ) {
|
||||
return S_cas_success;
|
||||
}
|
||||
|
||||
//
|
||||
// create a gdd with the "enum string table" application type
|
||||
@@ -201,15 +192,6 @@ caStatus casPVI::updateEnumStringTable ( casCtx & ctxIn )
|
||||
void casPVI::updateEnumStringTableAsyncCompletion ( const gdd & resp )
|
||||
{
|
||||
epicsGuard < epicsMutex > guard ( this->mutex );
|
||||
|
||||
//
|
||||
// keep trying to fill in the table if client disconnects
|
||||
// prevented previous asynchronous IO from finishing, but if
|
||||
// a previous client has succeeded then dont bother.
|
||||
//
|
||||
if ( this->enumStrTbl.numberOfStrings () > 0 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( resp.isContainer() ) {
|
||||
errMessage ( S_cas_badType,
|
||||
|
||||
@@ -204,9 +204,10 @@ void outBuf::commitMsg ( ca_uint32_t reducedPayloadSize )
|
||||
payloadSizeExtended = reducedPayloadSize;
|
||||
}
|
||||
else {
|
||||
AlignedWireRef < epicsUInt16 > payloadSize ( mp->m_postsize );
|
||||
AlignedWireRef < epicsUInt16 > payloadSizeOnWire ( mp->m_postsize );
|
||||
ca_uint32_t payloadSize = payloadSizeOnWire;
|
||||
assert ( reducedPayloadSize <= payloadSize );
|
||||
payloadSize = static_cast < ca_uint16_t > ( reducedPayloadSize );
|
||||
payloadSizeOnWire = static_cast < ca_uint16_t > ( reducedPayloadSize );
|
||||
}
|
||||
this->commitMsg ();
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ static void callbackInitPvt(void *arg)
|
||||
}
|
||||
}
|
||||
|
||||
void epicsShareAPI callbackInit()
|
||||
void epicsShareAPI callbackInit(void)
|
||||
{
|
||||
static epicsThreadOnceId callbackOnceFlag = EPICS_THREAD_ONCE_INIT;
|
||||
void *arg = 0;
|
||||
|
||||
@@ -56,7 +56,7 @@ typedef void (*CALLBACKFUNC)(struct callbackPvt*);
|
||||
#define callbackGetUser(USER,PCALLBACK)\
|
||||
( (USER) = (void *)((CALLBACK *)(PCALLBACK))->user )
|
||||
|
||||
epicsShareFunc void epicsShareAPI callbackInit();
|
||||
epicsShareFunc void epicsShareAPI callbackInit(void);
|
||||
epicsShareFunc void epicsShareAPI callbackRequest(CALLBACK *pCallback);
|
||||
epicsShareFunc void epicsShareAPI callbackRequestProcessCallback(
|
||||
CALLBACK *pCallback,int Priority, void *pRec);
|
||||
|
||||
@@ -57,8 +57,6 @@
|
||||
#include "dbAccessDefs.h"
|
||||
#include "recGbl.h"
|
||||
|
||||
extern long lset_stack_not_empty;
|
||||
|
||||
epicsShareDef struct dbBase *pdbbase = 0;
|
||||
epicsShareDef volatile int interruptAccept=FALSE;
|
||||
|
||||
@@ -119,7 +117,7 @@ static long putSpecial(DBADDR *paddr,int pass)
|
||||
return(0);
|
||||
}
|
||||
|
||||
static void get_enum_strs(DBADDR *paddr,void **ppbuffer,
|
||||
static void get_enum_strs(DBADDR *paddr, char **ppbuffer,
|
||||
struct rset *prset,long *options)
|
||||
{
|
||||
short field_type=paddr->field_type;
|
||||
@@ -179,7 +177,7 @@ choice_common:
|
||||
return;
|
||||
}
|
||||
|
||||
static void get_graphics(DBADDR *paddr,void **ppbuffer,
|
||||
static void get_graphics(DBADDR *paddr, char **ppbuffer,
|
||||
struct rset *prset,long *options)
|
||||
{
|
||||
struct dbr_grDouble grd;
|
||||
@@ -219,7 +217,7 @@ static void get_graphics(DBADDR *paddr,void **ppbuffer,
|
||||
return;
|
||||
}
|
||||
|
||||
static void get_control(DBADDR *paddr,void **ppbuffer,
|
||||
static void get_control(DBADDR *paddr, char **ppbuffer,
|
||||
struct rset *prset,long *options)
|
||||
{
|
||||
struct dbr_ctrlDouble ctrld;
|
||||
@@ -259,7 +257,7 @@ static void get_control(DBADDR *paddr,void **ppbuffer,
|
||||
return;
|
||||
}
|
||||
|
||||
static void get_alarm(DBADDR *paddr,void **ppbuffer,
|
||||
static void get_alarm(DBADDR *paddr, char **ppbuffer,
|
||||
struct rset *prset,long *options)
|
||||
{
|
||||
struct dbr_alDouble ald;
|
||||
@@ -304,14 +302,13 @@ static void get_alarm(DBADDR *paddr,void **ppbuffer,
|
||||
return;
|
||||
}
|
||||
|
||||
static void getOptions(DBADDR *paddr,void **poriginal,long *options,void *pflin)
|
||||
static void getOptions(DBADDR *paddr,char **poriginal,long *options,void *pflin)
|
||||
{
|
||||
db_field_log *pfl= (db_field_log *)pflin;
|
||||
struct rset *prset;
|
||||
short field_type=paddr->field_type;
|
||||
dbCommon *pcommon;
|
||||
void *pbuffer = *poriginal;
|
||||
|
||||
char *pbuffer = *poriginal;
|
||||
|
||||
prset=dbGetRset(paddr);
|
||||
/* Process options */
|
||||
@@ -328,19 +325,17 @@ static void getOptions(DBADDR *paddr,void **poriginal,long *options,void *pflin)
|
||||
}
|
||||
*pushort++ = pcommon->acks;
|
||||
*pushort++ = pcommon->ackt;
|
||||
pbuffer = pushort;
|
||||
pbuffer = (char *)pushort;
|
||||
}
|
||||
if( (*options) & DBR_UNITS ) {
|
||||
memset(pbuffer,'\0',dbr_units_size);
|
||||
if( prset && prset->get_units ){
|
||||
char * pchar = (char *)pbuffer;
|
||||
|
||||
(*prset->get_units)(paddr,pchar);
|
||||
pchar[DB_UNITS_SIZE-1] = '\0';
|
||||
(*prset->get_units)(paddr, pbuffer);
|
||||
pbuffer[DB_UNITS_SIZE-1] = '\0';
|
||||
} else {
|
||||
*options = (*options) ^ DBR_UNITS; /*Turn off DBR_UNITS*/
|
||||
*options ^= DBR_UNITS; /*Turn off DBR_UNITS*/
|
||||
}
|
||||
pbuffer = (char *)pbuffer + dbr_units_size;
|
||||
pbuffer += dbr_units_size;
|
||||
}
|
||||
if( (*options) & DBR_PRECISION ) {
|
||||
struct dbr_precision *pdbr_precision=
|
||||
@@ -354,9 +349,9 @@ static void getOptions(DBADDR *paddr,void **poriginal,long *options,void *pflin)
|
||||
pdbr_precision->field_width =
|
||||
pdbr_precision->precision + 5;
|
||||
} else {
|
||||
*options = (*options)^DBR_PRECISION; /*Turn off DBR_PRECISION*/
|
||||
*options ^= DBR_PRECISION; /*Turn off DBR_PRECISION*/
|
||||
}
|
||||
pbuffer = (char *)pbuffer + dbr_precision_size;
|
||||
pbuffer += dbr_precision_size;
|
||||
}
|
||||
if( (*options) & DBR_TIME ) {
|
||||
unsigned long *pulong = (unsigned long *)pbuffer;
|
||||
@@ -367,16 +362,16 @@ static void getOptions(DBADDR *paddr,void **poriginal,long *options,void *pflin)
|
||||
*pulong++ = pcommon->time.secPastEpoch;
|
||||
*pulong++ = pcommon->time.nsec;
|
||||
}
|
||||
pbuffer = pulong;
|
||||
pbuffer = (char *)pulong;
|
||||
}
|
||||
if( (*options) & DBR_ENUM_STRS )
|
||||
get_enum_strs(paddr,&pbuffer,prset,options);
|
||||
get_enum_strs(paddr, &pbuffer, prset, options);
|
||||
if( (*options) & (DBR_GR_LONG|DBR_GR_DOUBLE ))
|
||||
get_graphics(paddr,&pbuffer,prset,options);
|
||||
get_graphics(paddr, &pbuffer, prset, options);
|
||||
if((*options) & (DBR_CTRL_LONG | DBR_CTRL_DOUBLE ))
|
||||
get_control(paddr,&pbuffer,prset,options);
|
||||
get_control(paddr, &pbuffer, prset, options);
|
||||
if((*options) & (DBR_AL_LONG | DBR_AL_DOUBLE ))
|
||||
get_alarm(paddr,&pbuffer,prset,options);
|
||||
get_alarm(paddr, &pbuffer, prset, options);
|
||||
*poriginal = pbuffer;
|
||||
}
|
||||
|
||||
@@ -921,7 +916,8 @@ long epicsShareAPI dbGetField(DBADDR *paddr,short dbrType,
|
||||
status = S_db_badDbrtype;
|
||||
goto done;
|
||||
}
|
||||
if(options && (*options))getOptions(paddr,(void **)&pbuf,options,pflin);
|
||||
if (options && (*options))
|
||||
getOptions(paddr, &pbuf, options, pflin);
|
||||
if(nRequest && *nRequest==0) goto done;
|
||||
dbInitEntry(pdbbase,&dbEntry);
|
||||
status = dbFindRecord(&dbEntry,precord->name);
|
||||
@@ -966,7 +962,7 @@ long epicsShareAPI dbGet(DBADDR *paddr,short dbrType,
|
||||
}
|
||||
prset=dbGetRset(paddr);
|
||||
if(options && (*options)) {
|
||||
void *pbuf = pbuffer;
|
||||
char *pbuf = pbuffer;
|
||||
|
||||
getOptions(paddr,&pbuf,options,pflin);
|
||||
pbuffer = pbuf;
|
||||
@@ -1262,12 +1258,8 @@ long epicsShareAPI dbPutField(
|
||||
return(status);
|
||||
}
|
||||
|
||||
static long putAckt(paddr,pbuffer,nRequest,no_elements,offset)
|
||||
DBADDR *paddr;
|
||||
unsigned short *pbuffer;
|
||||
long nRequest;
|
||||
long no_elements;
|
||||
long offset;
|
||||
static long putAckt(DBADDR *paddr, const unsigned short *pbuffer, long nRequest,
|
||||
long no_elements, long offset)
|
||||
{
|
||||
dbCommon *precord=(dbCommon *)(paddr->precord);
|
||||
|
||||
@@ -1282,12 +1274,8 @@ long offset;
|
||||
return(0);
|
||||
}
|
||||
|
||||
static long putAcks(paddr,pbuffer,nRequest,no_elements,offset)
|
||||
DBADDR *paddr;
|
||||
unsigned short *pbuffer;
|
||||
long nRequest;
|
||||
long no_elements;
|
||||
long offset;
|
||||
static long putAcks(DBADDR *paddr, const unsigned short *pbuffer, long nRequest,
|
||||
long no_elements, long offset)
|
||||
{
|
||||
dbCommon *precord=(dbCommon *)(paddr->precord);
|
||||
|
||||
@@ -1316,11 +1304,9 @@ long epicsShareAPI dbPut(DBADDR *paddr,short dbrType,
|
||||
|
||||
if(special==SPC_ATTRIBUTE) return(S_db_noMod);
|
||||
if(dbrType==DBR_PUT_ACKT && field_type<=DBF_DEVICE) {
|
||||
status=putAckt(paddr,(unsigned short*)pbuffer,1l,1l,0l);
|
||||
return(status);
|
||||
return putAckt(paddr,(const unsigned short*)pbuffer,1l,1l,0l);
|
||||
} else if(dbrType==DBR_PUT_ACKS && field_type<=DBF_DEVICE) {
|
||||
status=putAcks(paddr,(unsigned short*)pbuffer,1l,1l,0l);
|
||||
return(status);
|
||||
return putAcks(paddr,(const unsigned short*)pbuffer,1l,1l,0l);
|
||||
} else if( INVALID_DB_REQ(dbrType) || (field_type>DBF_DEVICE)) {
|
||||
sprintf(message,"dbPut - database request type is %d",dbrType);
|
||||
recGblDbaddrError(S_db_badDbrtype,paddr,message);
|
||||
|
||||
@@ -89,9 +89,10 @@ epicsShareFunc long epicsShareAPI dbs(const char *recordname);
|
||||
epicsShareFunc long epicsShareAPI dbstat(void);
|
||||
epicsShareFunc long epicsShareAPI dbp(
|
||||
const char *record_name, int interest_level);
|
||||
epicsShareFunc long epicsShareAPI dbap(const char *record_name);
|
||||
epicsShareFunc long epicsShareAPI dbap(const char *record_name);
|
||||
epicsShareFunc int epicsShareAPI dbBkpt(dbCommon *precord);
|
||||
epicsShareFunc void epicsShareAPI dbPrint(dbCommon *precord);
|
||||
epicsShareFunc long epicsShareAPI dbprc(char *record_name);
|
||||
|
||||
extern long lset_stack_not_empty;
|
||||
|
||||
|
||||
@@ -2180,7 +2180,7 @@ static long getDeviceString(DBADDR *paddr, void *pto,
|
||||
static long putStringString(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
char *pdest=paddr->pfield;
|
||||
short size=paddr->field_size;
|
||||
|
||||
@@ -2206,7 +2206,7 @@ static long putStringString(
|
||||
static long putStringChar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
char *pdest=(char *)paddr->pfield;
|
||||
short value;
|
||||
|
||||
@@ -2237,7 +2237,7 @@ static long putStringChar(
|
||||
static long putStringUchar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
unsigned char *pdest=(unsigned char *)paddr->pfield;
|
||||
unsigned short value;
|
||||
|
||||
@@ -2268,7 +2268,7 @@ static long putStringUchar(
|
||||
static long putStringShort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
short *pdest=(short *)paddr->pfield;
|
||||
short value;
|
||||
|
||||
@@ -2299,7 +2299,7 @@ static long putStringShort(
|
||||
static long putStringUshort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
unsigned short *pdest=(unsigned short *)paddr->pfield;
|
||||
unsigned short value;
|
||||
|
||||
@@ -2330,7 +2330,7 @@ static long putStringUshort(
|
||||
static long putStringLong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
long *pdest=(long *)paddr->pfield;
|
||||
long value;
|
||||
|
||||
@@ -2361,7 +2361,7 @@ static long putStringLong(
|
||||
static long putStringUlong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
unsigned long *pdest=(unsigned long *)paddr->pfield;
|
||||
double value;
|
||||
|
||||
@@ -2394,7 +2394,7 @@ static long putStringUlong(
|
||||
static long putStringFloat(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
float *pdest=(float *)paddr->pfield;
|
||||
float value;
|
||||
|
||||
@@ -2426,7 +2426,7 @@ static long putStringFloat(
|
||||
static long putStringDouble(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
double *pdest=(double *)paddr->pfield;
|
||||
double value;
|
||||
|
||||
@@ -2458,7 +2458,7 @@ static long putStringDouble(
|
||||
static long putStringEnum(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
struct rset *prset;
|
||||
epicsEnum16 *pfield= (epicsEnum16*)(paddr->pfield);
|
||||
long status;
|
||||
@@ -2498,7 +2498,7 @@ static long putStringEnum(
|
||||
static long putStringMenu(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
dbFldDes *pdbFldDes = (dbFldDes *)paddr->pfldDes;
|
||||
dbMenu *pdbMenu;
|
||||
char **papChoiceValue;
|
||||
@@ -2535,7 +2535,7 @@ static long putStringMenu(
|
||||
static long putStringDevice(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
dbFldDes *pdbFldDes = (dbFldDes *)paddr->pfldDes;
|
||||
dbDeviceMenu *pdbDeviceMenu = (dbDeviceMenu *)pdbFldDes->ftPvt;
|
||||
char **papChoice;
|
||||
@@ -2572,7 +2572,7 @@ static long putStringDevice(
|
||||
static long putCharString(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
short size=paddr->field_size;
|
||||
|
||||
@@ -2597,7 +2597,7 @@ static long putCharString(
|
||||
static long putCharChar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2616,7 +2616,7 @@ static long putCharChar(
|
||||
static long putCharUchar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
unsigned char *pdest=(unsigned char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2635,7 +2635,7 @@ static long putCharUchar(
|
||||
static long putCharShort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
short *pdest=(short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2654,7 +2654,7 @@ static long putCharShort(
|
||||
static long putCharUshort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
unsigned short *pdest=(unsigned short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2673,7 +2673,7 @@ static long putCharUshort(
|
||||
static long putCharLong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
long *pdest=(long *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2692,7 +2692,7 @@ static long putCharLong(
|
||||
static long putCharUlong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
unsigned long *pdest=(unsigned long *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2711,7 +2711,7 @@ static long putCharUlong(
|
||||
static long putCharFloat(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
float *pdest=(float *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2730,7 +2730,7 @@ static long putCharFloat(
|
||||
static long putCharDouble(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
double *pdest=(double *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2749,7 +2749,7 @@ static long putCharDouble(
|
||||
static long putCharEnum(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
char *pbuffer = (char *)pfrom;
|
||||
const char *pbuffer = (const char *)pfrom;
|
||||
epicsEnum16 *pdest=(epicsEnum16 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2768,7 +2768,7 @@ static long putCharEnum(
|
||||
static long putUcharString(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned char *pbuffer = (unsigned char *)pfrom;
|
||||
const unsigned char *pbuffer = (const unsigned char *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
short size=paddr->field_size;
|
||||
|
||||
@@ -2793,7 +2793,7 @@ static long putUcharString(
|
||||
static long putUcharChar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned char *pbuffer = (unsigned char *)pfrom;
|
||||
const unsigned char *pbuffer = (const unsigned char *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2812,7 +2812,7 @@ static long putUcharChar(
|
||||
static long putUcharUchar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned char *pbuffer = (unsigned char *)pfrom;
|
||||
const unsigned char *pbuffer = (const unsigned char *)pfrom;
|
||||
unsigned char *pdest=(unsigned char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2831,7 +2831,7 @@ static long putUcharUchar(
|
||||
static long putUcharShort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned char *pbuffer = (unsigned char *)pfrom;
|
||||
const unsigned char *pbuffer = (const unsigned char *)pfrom;
|
||||
short *pdest=(short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2850,7 +2850,7 @@ static long putUcharShort(
|
||||
static long putUcharUshort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned char *pbuffer = (unsigned char *)pfrom;
|
||||
const unsigned char *pbuffer = (const unsigned char *)pfrom;
|
||||
unsigned short *pdest=(unsigned short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2869,7 +2869,7 @@ static long putUcharUshort(
|
||||
static long putUcharLong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned char *pbuffer = (unsigned char *)pfrom;
|
||||
const unsigned char *pbuffer = (const unsigned char *)pfrom;
|
||||
long *pdest=(long *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2888,7 +2888,7 @@ static long putUcharLong(
|
||||
static long putUcharUlong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned char *pbuffer = (unsigned char *)pfrom;
|
||||
const unsigned char *pbuffer = (const unsigned char *)pfrom;
|
||||
unsigned long *pdest=(unsigned long *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2907,7 +2907,7 @@ static long putUcharUlong(
|
||||
static long putUcharFloat(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned char *pbuffer = (unsigned char *)pfrom;
|
||||
const unsigned char *pbuffer = (const unsigned char *)pfrom;
|
||||
float *pdest=(float *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2926,7 +2926,7 @@ static long putUcharFloat(
|
||||
static long putUcharDouble(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned char *pbuffer = (unsigned char *)pfrom;
|
||||
const unsigned char *pbuffer = (const unsigned char *)pfrom;
|
||||
double *pdest=(double *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2945,7 +2945,7 @@ static long putUcharDouble(
|
||||
static long putUcharEnum(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned char *pbuffer = (unsigned char *)pfrom;
|
||||
const unsigned char *pbuffer = (const unsigned char *)pfrom;
|
||||
epicsEnum16 *pdest=(epicsEnum16 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -2964,7 +2964,7 @@ static long putUcharEnum(
|
||||
static long putShortString(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
short *pbuffer = (short *)pfrom;
|
||||
const short *pbuffer = (const short *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
short size=paddr->field_size;
|
||||
|
||||
@@ -2989,7 +2989,7 @@ static long putShortString(
|
||||
static long putShortChar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
short *pbuffer = (short *)pfrom;
|
||||
const short *pbuffer = (const short *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3008,7 +3008,7 @@ static long putShortChar(
|
||||
static long putShortUchar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
short *pbuffer = (short *)pfrom;
|
||||
const short *pbuffer = (const short *)pfrom;
|
||||
unsigned char *pdest=(unsigned char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3027,7 +3027,7 @@ static long putShortUchar(
|
||||
static long putShortShort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
short *pbuffer = (short *)pfrom;
|
||||
const short *pbuffer = (const short *)pfrom;
|
||||
short *pdest=(short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3046,7 +3046,7 @@ static long putShortShort(
|
||||
static long putShortUshort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
short *pbuffer = (short *)pfrom;
|
||||
const short *pbuffer = (const short *)pfrom;
|
||||
unsigned short *pdest=(unsigned short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3065,7 +3065,7 @@ static long putShortUshort(
|
||||
static long putShortLong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
short *pbuffer = (short *)pfrom;
|
||||
const short *pbuffer = (const short *)pfrom;
|
||||
long *pdest=(long *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3084,7 +3084,7 @@ static long putShortLong(
|
||||
static long putShortUlong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
short *pbuffer = (short *)pfrom;
|
||||
const short *pbuffer = (const short *)pfrom;
|
||||
unsigned long *pdest=(unsigned long *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3103,7 +3103,7 @@ static long putShortUlong(
|
||||
static long putShortFloat(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
short *pbuffer = (short *)pfrom;
|
||||
const short *pbuffer = (const short *)pfrom;
|
||||
float *pdest=(float *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3122,7 +3122,7 @@ static long putShortFloat(
|
||||
static long putShortDouble(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
short *pbuffer = (short *)pfrom;
|
||||
const short *pbuffer = (const short *)pfrom;
|
||||
double *pdest=(double *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3141,7 +3141,7 @@ static long putShortDouble(
|
||||
static long putShortEnum(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
short *pbuffer = (short *)pfrom;
|
||||
const short *pbuffer = (const short *)pfrom;
|
||||
epicsEnum16 *pdest=(epicsEnum16 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3160,7 +3160,7 @@ static long putShortEnum(
|
||||
static long putUshortString(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned short *pbuffer = (unsigned short *)pfrom;
|
||||
const unsigned short *pbuffer = (const unsigned short *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
short size=paddr->field_size;
|
||||
|
||||
@@ -3185,7 +3185,7 @@ static long putUshortString(
|
||||
static long putUshortChar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned short *pbuffer = (unsigned short *)pfrom;
|
||||
const unsigned short *pbuffer = (const unsigned short *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3204,7 +3204,7 @@ static long putUshortChar(
|
||||
static long putUshortUchar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned short *pbuffer = (unsigned short *)pfrom;
|
||||
const unsigned short *pbuffer = (const unsigned short *)pfrom;
|
||||
unsigned char *pdest=(unsigned char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3223,7 +3223,7 @@ static long putUshortUchar(
|
||||
static long putUshortShort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned short *pbuffer = (unsigned short *)pfrom;
|
||||
const unsigned short *pbuffer = (const unsigned short *)pfrom;
|
||||
short *pdest=(short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3242,7 +3242,7 @@ static long putUshortShort(
|
||||
static long putUshortUshort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned short *pbuffer = (unsigned short *)pfrom;
|
||||
const unsigned short *pbuffer = (const unsigned short *)pfrom;
|
||||
unsigned short *pdest=(unsigned short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3261,7 +3261,7 @@ static long putUshortUshort(
|
||||
static long putUshortLong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned short *pbuffer = (unsigned short *)pfrom;
|
||||
const unsigned short *pbuffer = (const unsigned short *)pfrom;
|
||||
epicsInt32 *pdest=(epicsInt32 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3280,7 +3280,7 @@ static long putUshortLong(
|
||||
static long putUshortUlong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned short *pbuffer = (unsigned short *)pfrom;
|
||||
const unsigned short *pbuffer = (const unsigned short *)pfrom;
|
||||
epicsUInt32 *pdest=(epicsUInt32 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3299,7 +3299,7 @@ static long putUshortUlong(
|
||||
static long putUshortFloat(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned short *pbuffer = (unsigned short *)pfrom;
|
||||
const unsigned short *pbuffer = (const unsigned short *)pfrom;
|
||||
float *pdest=(float *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3318,7 +3318,7 @@ static long putUshortFloat(
|
||||
static long putUshortDouble(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned short *pbuffer = (unsigned short *)pfrom;
|
||||
const unsigned short *pbuffer = (const unsigned short *)pfrom;
|
||||
double *pdest=(double *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3337,7 +3337,7 @@ static long putUshortDouble(
|
||||
static long putUshortEnum(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
unsigned short *pbuffer = (unsigned short *)pfrom;
|
||||
const unsigned short *pbuffer = (const unsigned short *)pfrom;
|
||||
epicsEnum16 *pdest=(epicsEnum16 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3356,7 +3356,7 @@ static long putUshortEnum(
|
||||
static long putLongString(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsInt32 *pbuffer = (epicsInt32 *)pfrom;
|
||||
const epicsInt32 *pbuffer = (const epicsInt32 *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
short size=paddr->field_size;
|
||||
|
||||
@@ -3381,7 +3381,7 @@ static long putLongString(
|
||||
static long putLongChar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsInt32 *pbuffer = (epicsInt32 *)pfrom;
|
||||
const epicsInt32 *pbuffer = (const epicsInt32 *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3400,7 +3400,7 @@ static long putLongChar(
|
||||
static long putLongUchar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsInt32 *pbuffer = (epicsInt32 *)pfrom;
|
||||
const epicsInt32 *pbuffer = (const epicsInt32 *)pfrom;
|
||||
unsigned char *pdest=(unsigned char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3419,7 +3419,7 @@ static long putLongUchar(
|
||||
static long putLongShort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsInt32 *pbuffer = (epicsInt32 *)pfrom;
|
||||
const epicsInt32 *pbuffer = (const epicsInt32 *)pfrom;
|
||||
short *pdest=(short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3438,7 +3438,7 @@ static long putLongShort(
|
||||
static long putLongUshort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsInt32 *pbuffer = (epicsInt32 *)pfrom;
|
||||
const epicsInt32 *pbuffer = (const epicsInt32 *)pfrom;
|
||||
unsigned short *pdest=(unsigned short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3457,7 +3457,7 @@ static long putLongUshort(
|
||||
static long putLongLong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsInt32 *pbuffer = (epicsInt32 *)pfrom;
|
||||
const epicsInt32 *pbuffer = (const epicsInt32 *)pfrom;
|
||||
epicsInt32 *pdest=(epicsInt32 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3476,7 +3476,7 @@ static long putLongLong(
|
||||
static long putLongUlong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsInt32 *pbuffer = (epicsInt32 *)pfrom;
|
||||
const epicsInt32 *pbuffer = (const epicsInt32 *)pfrom;
|
||||
epicsUInt32 *pdest=(epicsUInt32 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3495,7 +3495,7 @@ static long putLongUlong(
|
||||
static long putLongFloat(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsInt32 *pbuffer = (epicsInt32 *)pfrom;
|
||||
const epicsInt32 *pbuffer = (const epicsInt32 *)pfrom;
|
||||
float *pdest=(float *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3514,7 +3514,7 @@ static long putLongFloat(
|
||||
static long putLongDouble(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsInt32 *pbuffer = (epicsInt32 *)pfrom;
|
||||
const epicsInt32 *pbuffer = (const epicsInt32 *)pfrom;
|
||||
double *pdest=(double *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3533,7 +3533,7 @@ static long putLongDouble(
|
||||
static long putLongEnum(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsInt32 *pbuffer = (epicsInt32 *)pfrom;
|
||||
const epicsInt32 *pbuffer = (const epicsInt32 *)pfrom;
|
||||
epicsEnum16 *pdest=(epicsEnum16 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3552,7 +3552,7 @@ static long putLongEnum(
|
||||
static long putUlongString(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsUInt32 *pbuffer = (epicsUInt32 *)pfrom;
|
||||
const epicsUInt32 *pbuffer = (const epicsUInt32 *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
short size=paddr->field_size;
|
||||
|
||||
@@ -3577,7 +3577,7 @@ static long putUlongString(
|
||||
static long putUlongChar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsUInt32 *pbuffer = (epicsUInt32 *)pfrom;
|
||||
const epicsUInt32 *pbuffer = (const epicsUInt32 *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3596,7 +3596,7 @@ static long putUlongChar(
|
||||
static long putUlongUchar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsUInt32 *pbuffer = (epicsUInt32 *)pfrom;
|
||||
const epicsUInt32 *pbuffer = (const epicsUInt32 *)pfrom;
|
||||
unsigned char *pdest=(unsigned char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3615,7 +3615,7 @@ static long putUlongUchar(
|
||||
static long putUlongShort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsUInt32 *pbuffer = (epicsUInt32 *)pfrom;
|
||||
const epicsUInt32 *pbuffer = (const epicsUInt32 *)pfrom;
|
||||
short *pdest=(short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3634,7 +3634,7 @@ static long putUlongShort(
|
||||
static long putUlongUshort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsUInt32 *pbuffer = (epicsUInt32 *)pfrom;
|
||||
const epicsUInt32 *pbuffer = (const epicsUInt32 *)pfrom;
|
||||
unsigned short *pdest=(unsigned short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3653,7 +3653,7 @@ static long putUlongUshort(
|
||||
static long putUlongLong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsUInt32 *pbuffer = (epicsUInt32 *)pfrom;
|
||||
const epicsUInt32 *pbuffer = (const epicsUInt32 *)pfrom;
|
||||
epicsInt32 *pdest=(epicsInt32 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3672,7 +3672,7 @@ static long putUlongLong(
|
||||
static long putUlongUlong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsUInt32 *pbuffer = (epicsUInt32 *)pfrom;
|
||||
const epicsUInt32 *pbuffer = (const epicsUInt32 *)pfrom;
|
||||
epicsUInt32 *pdest=(epicsUInt32 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3691,7 +3691,7 @@ static long putUlongUlong(
|
||||
static long putUlongFloat(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsUInt32 *pbuffer = (epicsUInt32 *)pfrom;
|
||||
const epicsUInt32 *pbuffer = (const epicsUInt32 *)pfrom;
|
||||
float *pdest=(float *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3710,7 +3710,7 @@ static long putUlongFloat(
|
||||
static long putUlongDouble(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsUInt32 *pbuffer = (epicsUInt32 *)pfrom;
|
||||
const epicsUInt32 *pbuffer = (const epicsUInt32 *)pfrom;
|
||||
double *pdest=(double *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3729,7 +3729,7 @@ static long putUlongDouble(
|
||||
static long putUlongEnum(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsUInt32 *pbuffer = (epicsUInt32 *)pfrom;
|
||||
const epicsUInt32 *pbuffer = (const epicsUInt32 *)pfrom;
|
||||
epicsEnum16 *pdest=(epicsEnum16 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3748,7 +3748,7 @@ static long putUlongEnum(
|
||||
static long putFloatString(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
float *pbuffer = (float *)pfrom;
|
||||
const float *pbuffer = (const float *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
long status = 0;
|
||||
int precision = 6;
|
||||
@@ -3778,7 +3778,7 @@ static long putFloatString(
|
||||
static long putFloatChar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
float *pbuffer = (float *)pfrom;
|
||||
const float *pbuffer = (const float *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3797,7 +3797,7 @@ static long putFloatChar(
|
||||
static long putFloatUchar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
float *pbuffer = (float *)pfrom;
|
||||
const float *pbuffer = (const float *)pfrom;
|
||||
unsigned char *pdest=(unsigned char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3816,7 +3816,7 @@ static long putFloatUchar(
|
||||
static long putFloatShort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
float *pbuffer = (float *)pfrom;
|
||||
const float *pbuffer = (const float *)pfrom;
|
||||
short *pdest=(short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3835,7 +3835,7 @@ static long putFloatShort(
|
||||
static long putFloatUshort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
float *pbuffer = (float *)pfrom;
|
||||
const float *pbuffer = (const float *)pfrom;
|
||||
unsigned short *pdest=(unsigned short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3854,7 +3854,7 @@ static long putFloatUshort(
|
||||
static long putFloatLong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
float *pbuffer = (float *)pfrom;
|
||||
const float *pbuffer = (const float *)pfrom;
|
||||
epicsInt32 *pdest=(epicsInt32 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3873,7 +3873,7 @@ static long putFloatLong(
|
||||
static long putFloatUlong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
float *pbuffer = (float *)pfrom;
|
||||
const float *pbuffer = (const float *)pfrom;
|
||||
epicsUInt32 *pdest=(epicsUInt32 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3892,7 +3892,7 @@ static long putFloatUlong(
|
||||
static long putFloatFloat(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
float *pbuffer = (float *)pfrom;
|
||||
const float *pbuffer = (const float *)pfrom;
|
||||
float *pdest=(float *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3911,7 +3911,7 @@ static long putFloatFloat(
|
||||
static long putFloatDouble(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
float *pbuffer = (float *)pfrom;
|
||||
const float *pbuffer = (const float *)pfrom;
|
||||
double *pdest=(double *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3930,7 +3930,7 @@ static long putFloatDouble(
|
||||
static long putFloatEnum(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
float *pbuffer = (float *)pfrom;
|
||||
const float *pbuffer = (const float *)pfrom;
|
||||
epicsEnum16 *pdest=(epicsEnum16 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3949,7 +3949,7 @@ static long putFloatEnum(
|
||||
static long putDoubleString(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
double *pbuffer = (double *)pfrom;
|
||||
const double *pbuffer = (const double *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
long status = 0;
|
||||
int precision = 6;
|
||||
@@ -3979,7 +3979,7 @@ static long putDoubleString(
|
||||
static long putDoubleChar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
double *pbuffer = (double *)pfrom;
|
||||
const double *pbuffer = (const double *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -3998,7 +3998,7 @@ static long putDoubleChar(
|
||||
static long putDoubleUchar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
double *pbuffer = (double *)pfrom;
|
||||
const double *pbuffer = (const double *)pfrom;
|
||||
unsigned char *pdest=(unsigned char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4017,7 +4017,7 @@ static long putDoubleUchar(
|
||||
static long putDoubleShort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
double *pbuffer = (double *)pfrom;
|
||||
const double *pbuffer = (const double *)pfrom;
|
||||
short *pdest=(short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4036,7 +4036,7 @@ static long putDoubleShort(
|
||||
static long putDoubleUshort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
double *pbuffer = (double *)pfrom;
|
||||
const double *pbuffer = (const double *)pfrom;
|
||||
unsigned short *pdest=(unsigned short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4055,7 +4055,7 @@ static long putDoubleUshort(
|
||||
static long putDoubleLong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
double *pbuffer = (double *)pfrom;
|
||||
const double *pbuffer = (const double *)pfrom;
|
||||
epicsInt32 *pdest=(epicsInt32 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4074,7 +4074,7 @@ static long putDoubleLong(
|
||||
static long putDoubleUlong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
double *pbuffer = (double *)pfrom;
|
||||
const double *pbuffer = (const double *)pfrom;
|
||||
epicsUInt32 *pdest=(epicsUInt32 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4093,7 +4093,7 @@ static long putDoubleUlong(
|
||||
static long putDoubleFloat(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
double *pbuffer = (double *)pfrom;
|
||||
const double *pbuffer = (const double *)pfrom;
|
||||
float *pdest=(float *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4113,7 +4113,7 @@ static long putDoubleFloat(
|
||||
static long putDoubleDouble(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
double *pbuffer = (double *)pfrom;
|
||||
const double *pbuffer = (const double *)pfrom;
|
||||
double *pdest=(double *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4132,7 +4132,7 @@ static long putDoubleDouble(
|
||||
static long putDoubleEnum(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
double *pbuffer = (double *)pfrom;
|
||||
const double *pbuffer = (const double *)pfrom;
|
||||
epicsEnum16 *pdest=(epicsEnum16 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4151,7 +4151,7 @@ static long putDoubleEnum(
|
||||
static long putEnumString(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsEnum16 *pbuffer = (epicsEnum16 *)pfrom;
|
||||
const epicsEnum16 *pbuffer = (const epicsEnum16 *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
short size=paddr->field_size;
|
||||
|
||||
@@ -4176,7 +4176,7 @@ static long putEnumString(
|
||||
static long putEnumChar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsEnum16 *pbuffer = (epicsEnum16 *)pfrom;
|
||||
const epicsEnum16 *pbuffer = (const epicsEnum16 *)pfrom;
|
||||
char *pdest=(char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4195,7 +4195,7 @@ static long putEnumChar(
|
||||
static long putEnumUchar(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsEnum16 *pbuffer = (epicsEnum16 *)pfrom;
|
||||
const epicsEnum16 *pbuffer = (const epicsEnum16 *)pfrom;
|
||||
unsigned char *pdest=(unsigned char *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4214,7 +4214,7 @@ static long putEnumUchar(
|
||||
static long putEnumShort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsEnum16 *pbuffer = (epicsEnum16 *)pfrom;
|
||||
const epicsEnum16 *pbuffer = (const epicsEnum16 *)pfrom;
|
||||
short *pdest=(short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4233,7 +4233,7 @@ static long putEnumShort(
|
||||
static long putEnumUshort(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsEnum16 *pbuffer = (epicsEnum16 *)pfrom;
|
||||
const epicsEnum16 *pbuffer = (const epicsEnum16 *)pfrom;
|
||||
unsigned short *pdest=(unsigned short *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4252,7 +4252,7 @@ static long putEnumUshort(
|
||||
static long putEnumLong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsEnum16 *pbuffer = (epicsEnum16 *)pfrom;
|
||||
const epicsEnum16 *pbuffer = (const epicsEnum16 *)pfrom;
|
||||
epicsInt32 *pdest=(epicsInt32 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4271,7 +4271,7 @@ static long putEnumLong(
|
||||
static long putEnumUlong(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsEnum16 *pbuffer = (epicsEnum16 *)pfrom;
|
||||
const epicsEnum16 *pbuffer = (const epicsEnum16 *)pfrom;
|
||||
epicsUInt32 *pdest=(epicsUInt32 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4290,7 +4290,7 @@ static long putEnumUlong(
|
||||
static long putEnumFloat(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsEnum16 *pbuffer = (epicsEnum16 *)pfrom;
|
||||
const epicsEnum16 *pbuffer = (const epicsEnum16 *)pfrom;
|
||||
float *pdest=(float *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4309,7 +4309,7 @@ static long putEnumFloat(
|
||||
static long putEnumDouble(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsEnum16 *pbuffer = (epicsEnum16 *)pfrom;
|
||||
const epicsEnum16 *pbuffer = (const epicsEnum16 *)pfrom;
|
||||
double *pdest=(double *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
@@ -4328,7 +4328,7 @@ static long putEnumDouble(
|
||||
static long putEnumEnum(
|
||||
DBADDR *paddr,const void *pfrom,long nRequest,long no_elements,long offset)
|
||||
{
|
||||
epicsEnum16 *pbuffer = (epicsEnum16 *)pfrom;
|
||||
const epicsEnum16 *pbuffer = (const epicsEnum16 *)pfrom;
|
||||
epicsEnum16 *pdest=(epicsEnum16 *)(paddr->pfield);
|
||||
|
||||
if(nRequest==1 && offset==0) {
|
||||
|
||||
133
src/db/dbEvent.c
133
src/db/dbEvent.c
@@ -90,10 +90,7 @@ struct event_user {
|
||||
epicsMutexId lock;
|
||||
epicsEventId ppendsem; /* Wait while empty */
|
||||
epicsEventId pflush_sem; /* wait for flush */
|
||||
|
||||
OVRFFUNC *overflow_sub; /* called when overflow detect */
|
||||
void *overflow_arg; /* parameter to above */
|
||||
|
||||
|
||||
EXTRALABORFUNC *extralabor_sub;/* off load to event task */
|
||||
void *extralabor_arg;/* parameter to above */
|
||||
|
||||
@@ -194,12 +191,6 @@ int epicsShareAPI dbel ( const char *pname, unsigned level )
|
||||
if ( level > 0 ) {
|
||||
printf ( "%4.4s", pdbFldDes->name );
|
||||
|
||||
/* they should never see this one */
|
||||
if ( pevent->ev_que->evUser->queovr ) {
|
||||
printf ( " !! event discard count=%d !!",
|
||||
pevent->ev_que->evUser->queovr );
|
||||
}
|
||||
|
||||
printf ( " { " );
|
||||
if ( pevent->select & DBE_VALUE ) printf( "VALUE " );
|
||||
if ( pevent->select & DBE_LOG ) printf( "LOG " );
|
||||
@@ -565,36 +556,22 @@ void epicsShareAPI db_cancel_event (dbEventSubscription es)
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* DB_ADD_OVERFLOW_EVENT()
|
||||
*
|
||||
* Specify a routine to be executed for event que overflow condition
|
||||
*/
|
||||
int epicsShareAPI db_add_overflow_event (
|
||||
dbEventCtx ctx, OVRFFUNC *overflow_sub, void *overflow_arg)
|
||||
{
|
||||
struct event_user *evUser = (struct event_user *) ctx;
|
||||
|
||||
evUser->overflow_sub = overflow_sub;
|
||||
evUser->overflow_arg = overflow_arg;
|
||||
|
||||
return DB_EVENT_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* DB_FLUSH_EXTRA_LABOR_EVENT()
|
||||
*
|
||||
* waits for extra labor in progress to finish
|
||||
*/
|
||||
int epicsShareAPI db_flush_extra_labor_event (dbEventCtx ctx)
|
||||
void epicsShareAPI db_flush_extra_labor_event (dbEventCtx ctx)
|
||||
{
|
||||
struct event_user *evUser = (struct event_user *) ctx;
|
||||
|
||||
while(evUser->extraLaborBusy){
|
||||
epicsMutexMustLock ( evUser->lock );
|
||||
while ( evUser->extraLaborBusy ) {
|
||||
epicsMutexUnlock ( evUser->lock );
|
||||
epicsThreadSleep(1.0);
|
||||
epicsMutexMustLock ( evUser->lock );
|
||||
}
|
||||
|
||||
return DB_EVENT_OK;
|
||||
epicsMutexUnlock ( evUser->lock );
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -625,19 +602,18 @@ int epicsShareAPI db_post_extra_labor (dbEventCtx ctx)
|
||||
struct event_user *evUser = (struct event_user *) ctx;
|
||||
int doit;
|
||||
|
||||
epicsMutexMustLock ( evUser->lock );
|
||||
if ( ! evUser->extra_labor ) {
|
||||
epicsMutexMustLock ( evUser->lock );
|
||||
if ( ! evUser->extra_labor ) {
|
||||
evUser->extra_labor = TRUE;
|
||||
doit = TRUE;
|
||||
}
|
||||
else {
|
||||
doit = FALSE;
|
||||
}
|
||||
epicsMutexUnlock ( evUser->lock );
|
||||
if ( doit ) {
|
||||
epicsEventSignal(evUser->ppendsem);
|
||||
}
|
||||
evUser->extra_labor = TRUE;
|
||||
doit = TRUE;
|
||||
}
|
||||
else {
|
||||
doit = FALSE;
|
||||
}
|
||||
epicsMutexUnlock ( evUser->lock );
|
||||
|
||||
if ( doit ) {
|
||||
epicsEventSignal(evUser->ppendsem);
|
||||
}
|
||||
|
||||
return DB_EVENT_OK;
|
||||
@@ -700,11 +676,11 @@ LOCAL void db_post_single_event_private (struct evSubscrip *event)
|
||||
firstEventFlag = 0;
|
||||
}
|
||||
/*
|
||||
* otherwise if the current entry is available then
|
||||
* fill it in and advance the ring buffer
|
||||
* Otherwise, the current entry must be available.
|
||||
* Fill it in and advance the ring buffer.
|
||||
*/
|
||||
else if ( ev_que->evque[ev_que->putix] == EVENTQEMPTY ) {
|
||||
|
||||
else {
|
||||
assert ( ev_que->evque[ev_que->putix] == EVENTQEMPTY );
|
||||
pLog = &ev_que->valque[ev_que->putix];
|
||||
ev_que->evque[ev_que->putix] = event;
|
||||
if (event->npend>0u) {
|
||||
@@ -723,14 +699,6 @@ LOCAL void db_post_single_event_private (struct evSubscrip *event)
|
||||
}
|
||||
ev_que->putix = RNGINC ( ev_que->putix );
|
||||
}
|
||||
else {
|
||||
/*
|
||||
* this should never occur if this is bug free
|
||||
*/
|
||||
ev_que->evUser->queovr++;
|
||||
pLog = NULL;
|
||||
firstEventFlag = 0;
|
||||
}
|
||||
|
||||
if (pLog && event->valque) {
|
||||
struct dbCommon *precord = event->paddr->precord;
|
||||
@@ -948,50 +916,31 @@ LOCAL void event_task (void *pParm)
|
||||
* check to see if the caller has offloaded
|
||||
* labor to this task
|
||||
*/
|
||||
epicsMutexMustLock ( evUser->lock );
|
||||
evUser->extraLaborBusy = TRUE;
|
||||
if(evUser->extra_labor && evUser->extralabor_sub){
|
||||
epicsMutexMustLock ( evUser->lock );
|
||||
if(evUser->extra_labor && evUser->extralabor_sub){
|
||||
evUser->extra_labor = FALSE;
|
||||
pExtraLaborSub = evUser->extralabor_sub;
|
||||
pExtraLaborArg = evUser->extralabor_arg;
|
||||
}
|
||||
else {
|
||||
pExtraLaborSub = NULL;
|
||||
pExtraLaborArg = NULL;
|
||||
}
|
||||
if ( evUser->extra_labor && evUser->extralabor_sub ) {
|
||||
evUser->extra_labor = FALSE;
|
||||
pExtraLaborSub = evUser->extralabor_sub;
|
||||
pExtraLaborArg = evUser->extralabor_arg;
|
||||
}
|
||||
else {
|
||||
pExtraLaborSub = NULL;
|
||||
pExtraLaborArg = NULL;
|
||||
}
|
||||
if ( pExtraLaborSub ) {
|
||||
epicsMutexUnlock ( evUser->lock );
|
||||
if(pExtraLaborSub){
|
||||
(*pExtraLaborSub)(pExtraLaborArg);
|
||||
}
|
||||
(*pExtraLaborSub)(pExtraLaborArg);
|
||||
epicsMutexMustLock ( evUser->lock );
|
||||
}
|
||||
evUser->extraLaborBusy = FALSE;
|
||||
|
||||
if(evUser->extra_labor && evUser->extralabor_sub){
|
||||
evUser->extra_labor = FALSE;
|
||||
(*evUser->extralabor_sub)(evUser->extralabor_arg);
|
||||
}
|
||||
epicsMutexUnlock ( evUser->lock );
|
||||
|
||||
for ( ev_que = &evUser->firstque; ev_que;
|
||||
ev_que = ev_que->nextque ) {
|
||||
event_read (ev_que);
|
||||
}
|
||||
|
||||
/*
|
||||
* The following do not introduce event latency since they
|
||||
* are not between notification and posting events.
|
||||
*/
|
||||
if(evUser->queovr){
|
||||
if(evUser->overflow_sub)
|
||||
(*evUser->overflow_sub)(
|
||||
evUser->overflow_arg,
|
||||
evUser->queovr);
|
||||
else
|
||||
errlogPrintf("Events lost, discard count was %d\n",
|
||||
evUser->queovr);
|
||||
evUser->queovr = 0;
|
||||
}
|
||||
}while(!evUser->pendexit);
|
||||
} while( ! evUser->pendexit );
|
||||
|
||||
epicsMutexDestroy(evUser->firstque.writelock);
|
||||
|
||||
@@ -1027,14 +976,14 @@ int epicsShareAPI db_start_events (
|
||||
{
|
||||
struct event_user *evUser = (struct event_user *) ctx;
|
||||
|
||||
epicsMutexMustLock (evUser->firstque.writelock);
|
||||
epicsMutexMustLock ( evUser->lock );
|
||||
|
||||
/*
|
||||
* only one ca_pend_event thread may be
|
||||
* started for each evUser
|
||||
*/
|
||||
if (evUser->taskid) {
|
||||
epicsMutexUnlock (evUser->firstque.writelock);
|
||||
epicsMutexUnlock ( evUser->lock );
|
||||
return DB_EVENT_OK;
|
||||
}
|
||||
|
||||
@@ -1048,10 +997,10 @@ int epicsShareAPI db_start_events (
|
||||
taskname, osiPriority, epicsThreadGetStackSize(epicsThreadStackMedium),
|
||||
event_task, (void *)evUser);
|
||||
if (!evUser->taskid) {
|
||||
epicsMutexUnlock (evUser->firstque.writelock);
|
||||
epicsMutexUnlock ( evUser->lock );
|
||||
return DB_EVENT_ERROR;
|
||||
}
|
||||
epicsMutexUnlock (evUser->firstque.writelock);
|
||||
epicsMutexUnlock ( evUser->lock );
|
||||
return DB_EVENT_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,6 @@ epicsShareFunc int epicsShareAPI db_post_events (
|
||||
|
||||
typedef void * dbEventCtx;
|
||||
|
||||
typedef void OVRFFUNC (void *overflow_arg, unsigned count);
|
||||
typedef void EXTRALABORFUNC (void *extralabor_arg);
|
||||
epicsShareFunc dbEventCtx epicsShareAPI db_init_events (void);
|
||||
epicsShareFunc int epicsShareAPI db_start_events (
|
||||
@@ -55,11 +54,9 @@ epicsShareFunc int epicsShareAPI db_start_events (
|
||||
epicsShareFunc void epicsShareAPI db_close_events (dbEventCtx ctx);
|
||||
epicsShareFunc void epicsShareAPI db_event_flow_ctrl_mode_on (dbEventCtx ctx);
|
||||
epicsShareFunc void epicsShareAPI db_event_flow_ctrl_mode_off (dbEventCtx ctx);
|
||||
epicsShareFunc int epicsShareAPI db_add_overflow_event (
|
||||
dbEventCtx ctx, OVRFFUNC *overflow_sub, void *overflow_arg);
|
||||
epicsShareFunc int epicsShareAPI db_add_extra_labor_event (
|
||||
dbEventCtx ctx, EXTRALABORFUNC *func, void *arg);
|
||||
epicsShareFunc int epicsShareAPI db_flush_extra_labor_event (dbEventCtx);
|
||||
epicsShareFunc void epicsShareAPI db_flush_extra_labor_event (dbEventCtx);
|
||||
epicsShareFunc int epicsShareAPI db_post_extra_labor (dbEventCtx ctx);
|
||||
epicsShareFunc void epicsShareAPI db_event_change_priority ( dbEventCtx ctx, unsigned epicsPriority );
|
||||
|
||||
|
||||
@@ -1093,121 +1093,121 @@ int no_elements
|
||||
break;
|
||||
case(oldDBR_STS_STRING):
|
||||
status = dbPutField(paddr,DBR_STRING,
|
||||
((struct dbr_sts_string *)psrc)->value,(long)no_elements);
|
||||
((const struct dbr_sts_string *)psrc)->value,(long)no_elements);
|
||||
break;
|
||||
/* case(oldDBR_STS_INT): */
|
||||
case(oldDBR_STS_SHORT):
|
||||
status = dbPutField(paddr,DBR_SHORT,
|
||||
&(((struct dbr_sts_short *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_sts_short *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_STS_FLOAT):
|
||||
status = dbPutField(paddr,DBR_FLOAT,
|
||||
&(((struct dbr_sts_float *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_sts_float *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_STS_ENUM):
|
||||
status = dbPutField(paddr,DBR_ENUM,
|
||||
&(((struct dbr_sts_enum *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_sts_enum *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_STS_CHAR):
|
||||
status = dbPutField(paddr,DBR_UCHAR,
|
||||
&(((struct dbr_sts_char *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_sts_char *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_STS_LONG):
|
||||
status = dbPutField(paddr,DBR_LONG,
|
||||
&(((struct dbr_sts_long *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_sts_long *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_STS_DOUBLE):
|
||||
status = dbPutField(paddr,DBR_DOUBLE,
|
||||
&(((struct dbr_sts_double *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_sts_double *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_TIME_STRING):
|
||||
status = dbPutField(paddr,DBR_TIME,
|
||||
((struct dbr_time_string *)psrc)->value,(long)no_elements);
|
||||
((const struct dbr_time_string *)psrc)->value,(long)no_elements);
|
||||
break;
|
||||
/* case(oldDBR_TIME_INT): */
|
||||
case(oldDBR_TIME_SHORT):
|
||||
status = dbPutField(paddr,DBR_SHORT,
|
||||
&(((struct dbr_time_short *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_time_short *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_TIME_FLOAT):
|
||||
status = dbPutField(paddr,DBR_FLOAT,
|
||||
&(((struct dbr_time_float *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_time_float *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_TIME_ENUM):
|
||||
status = dbPutField(paddr,DBR_ENUM,
|
||||
&(((struct dbr_time_enum *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_time_enum *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_TIME_CHAR):
|
||||
status = dbPutField(paddr,DBR_UCHAR,
|
||||
&(((struct dbr_time_char *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_time_char *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_TIME_LONG):
|
||||
status = dbPutField(paddr,DBR_LONG,
|
||||
&(((struct dbr_time_long *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_time_long *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_TIME_DOUBLE):
|
||||
status = dbPutField(paddr,DBR_DOUBLE,
|
||||
&(((struct dbr_time_double *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_time_double *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_GR_STRING):
|
||||
/* no struct dbr_gr_string - use dbr_sts_string instead */
|
||||
status = dbPutField(paddr,DBR_STRING,
|
||||
((struct dbr_sts_string *)psrc)->value,(long)no_elements);
|
||||
((const struct dbr_sts_string *)psrc)->value,(long)no_elements);
|
||||
break;
|
||||
/* case(oldDBR_GR_INT): */
|
||||
case(oldDBR_GR_SHORT):
|
||||
status = dbPutField(paddr,DBR_SHORT,
|
||||
&(((struct dbr_gr_short *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_gr_short *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_GR_FLOAT):
|
||||
status = dbPutField(paddr,DBR_FLOAT,
|
||||
&(((struct dbr_gr_float *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_gr_float *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_GR_ENUM):
|
||||
status = dbPutField(paddr,DBR_ENUM,
|
||||
&(((struct dbr_gr_enum *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_gr_enum *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_GR_CHAR):
|
||||
status = dbPutField(paddr,DBR_UCHAR,
|
||||
&(((struct dbr_gr_char *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_gr_char *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_GR_LONG):
|
||||
status = dbPutField(paddr,DBR_LONG,
|
||||
&(((struct dbr_gr_long *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_gr_long *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_GR_DOUBLE):
|
||||
status = dbPutField(paddr,DBR_DOUBLE,
|
||||
&(((struct dbr_gr_double *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_gr_double *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_CTRL_STRING):
|
||||
/* no struct dbr_ctrl_string - use dbr_sts_string instead */
|
||||
status = dbPutField(paddr,DBR_STRING,
|
||||
((struct dbr_sts_string *)psrc)->value,(long)no_elements);
|
||||
((const struct dbr_sts_string *)psrc)->value,(long)no_elements);
|
||||
break;
|
||||
/* case(oldDBR_CTRL_INT): */
|
||||
case(oldDBR_CTRL_SHORT):
|
||||
status = dbPutField(paddr,DBR_SHORT,
|
||||
&(((struct dbr_ctrl_short *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_ctrl_short *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_CTRL_FLOAT):
|
||||
status = dbPutField(paddr,DBR_FLOAT,
|
||||
&(((struct dbr_ctrl_float *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_ctrl_float *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_CTRL_ENUM):
|
||||
status = dbPutField(paddr,DBR_ENUM,
|
||||
&(((struct dbr_ctrl_enum *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_ctrl_enum *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_CTRL_CHAR):
|
||||
status = dbPutField(paddr,DBR_UCHAR,
|
||||
&(((struct dbr_ctrl_char *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_ctrl_char *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_CTRL_LONG):
|
||||
status = dbPutField(paddr,DBR_LONG,
|
||||
&(((struct dbr_ctrl_long *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_ctrl_long *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_CTRL_DOUBLE):
|
||||
status = dbPutField(paddr,DBR_DOUBLE,
|
||||
&(((struct dbr_ctrl_double *)psrc)->value),(long)no_elements);
|
||||
&(((const struct dbr_ctrl_double *)psrc)->value),(long)no_elements);
|
||||
break;
|
||||
case(oldDBR_PUT_ACKT):
|
||||
status = dbPutField(paddr,DBR_PUT_ACKT,psrc,(long)no_elements);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user