Compare commits
20 Commits
PSI-7.0.6.
...
PSI-7.0.6.
| Author | SHA1 | Date | |
|---|---|---|---|
| 4ffa5c8c88 | |||
| 5e076e6d30 | |||
| dcb2c5affd | |||
| 3ac3906fea | |||
| 2d597a68b9 | |||
| 1bfe3dec3c | |||
| ea0b05c32b | |||
| 9c64469f1e | |||
| 2a4ebdf347 | |||
| d5756faef4 | |||
| 77fb5cf425 | |||
| 46141e98d5 | |||
| 5ac51f86ad | |||
| 0af4fce080 | |||
| 4fb42763a2 | |||
| 211d29c0e1 | |||
| da7bca9c16 | |||
| ec346a7b8d | |||
| 81d1082bfd | |||
| 3f8cee7d73 |
@@ -1 +1,3 @@
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-clang
|
||||
|
||||
STD_CXXFLAGS = -std=c++2a
|
||||
|
||||
@@ -32,7 +32,7 @@ OP_SYS_LDFLAGS += -Wl,-Ttext,0x100000
|
||||
|
||||
|
||||
# This check must appear after the above include
|
||||
ifneq ($(RTEMS_VERSION),5)
|
||||
ifneq ($(firstword $(subst ., ,$(RTEMS_VERSION))),5)
|
||||
$(info *** This target is not compatible with the configured RTEMS version.)
|
||||
$(info *** Build the RTEMS-pc386 (-qemu) target for RTEMS 4.x)
|
||||
$(error Can't continue)
|
||||
|
||||
2
configure/os/CONFIG.Common.RTEMS49-pc386
Normal file
2
configure/os/CONFIG.Common.RTEMS49-pc386
Normal file
@@ -0,0 +1,2 @@
|
||||
RTEMS_VERSION = 4.9
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS-pc386
|
||||
2
configure/os/CONFIG.Common.RTEMS51-pc686
Normal file
2
configure/os/CONFIG.Common.RTEMS51-pc686
Normal file
@@ -0,0 +1,2 @@
|
||||
RTEMS_VERSION = 5
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS-pc686
|
||||
@@ -1,3 +1,3 @@
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc32
|
||||
VXWORKS_VERSION = 6.9
|
||||
export LD_LIBRARY_PATH=$(WIND_BASE)/lmapi-5.0/$(WIND_HOST_TYPE)/lib
|
||||
#export LD_LIBRARY_PATH=$(WIND_BASE)/lmapi-5.0/$(WIND_HOST_TYPE)/lib
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
|
||||
VXWORKS_VERSION = 6.9
|
||||
export LD_LIBRARY_PATH=$(WIND_BASE)/lmapi-5.0/$(WIND_HOST_TYPE)/lib
|
||||
#export LD_LIBRARY_PATH=$(WIND_BASE)/lmapi-5.0/$(WIND_HOST_TYPE)/lib
|
||||
|
||||
# -fno-implicit-fp causes error: "unable to find a register to spill in class 'FLOAT_REGS'"
|
||||
ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align
|
||||
ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align
|
||||
|
||||
@@ -17,3 +17,7 @@ ARCH_DEP_CFLAGS += -funwind-tables
|
||||
|
||||
# have no full C++11
|
||||
STD_CXXFLAGS = -std=c++0x
|
||||
|
||||
# accept4() exists but does not work
|
||||
# Give fake __rtems__ macro to posix/osdSock.c because that disables accept4()
|
||||
osdSock_CFLAGS += -D__rtems__
|
||||
|
||||
@@ -6,7 +6,7 @@ include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
ARCH_CLASS = arm64
|
||||
|
||||
SDK = petalinux
|
||||
SDK_DIR = /opt/petalinux-gfa/2017.2
|
||||
SDK_DIR = /opt/petalinux-gfa/2018.1
|
||||
SDK_HOST_ARCH = $(GNU_HOST_ARCH_64)-$(SDK)-$(GNU_HOST_OS)
|
||||
SDK_TARGET = aarch64-xilinx-linux
|
||||
GNU_TARGET = $(SDK_TARGET)
|
||||
|
||||
20
configure/os/CONFIG.Common.yocto40-aarch64
Normal file
20
configure/os/CONFIG.Common.yocto40-aarch64
Normal file
@@ -0,0 +1,20 @@
|
||||
# XILINX Zynq with Yocto 4.0 toolchain
|
||||
|
||||
# Include definitions common to all Linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = arm64
|
||||
|
||||
SDK = pokysdk
|
||||
SDK_DIR = /opt/yocto40-aarch64
|
||||
SDK_HOST_ARCH = $(GNU_HOST_ARCH_64)-$(SDK)-$(GNU_HOST_OS)
|
||||
SDK_TARGET = cortexa53-poky-linux
|
||||
GNU_TARGET = aarch64-poky-linux
|
||||
SDKTARGETSYSROOT = $(SDK_DIR)/sysroots/$(SDK_TARGET)
|
||||
GNU_DIR = $(SDK_DIR)/sysroots/$(SDK_HOST_ARCH)/usr
|
||||
GNU_BIN = $(GNU_DIR)/bin/$(GNU_TARGET)
|
||||
|
||||
ARCH_DEP_CPPFLAGS = --sysroot=$(SDKTARGETSYSROOT) -mcpu=cortex-a53 -march=armv8-a+crc
|
||||
ARCH_DEP_LDFLAGS = --sysroot=$(SDKTARGETSYSROOT)
|
||||
|
||||
STD_CXXFLAGS = -std=c++23
|
||||
21
configure/os/CONFIG.Cross_64.RHEL7-x86_64
Normal file
21
configure/os/CONFIG.Cross_64.RHEL7-x86_64
Normal file
@@ -0,0 +1,21 @@
|
||||
# "cross compile" for RHEL7-x86_64 on other 64 bit Linux version
|
||||
# Expects RHEL7 RPMs c++ and readline-devel installed in $(SYSROOT)
|
||||
# This can be installed on RHEL7 with:
|
||||
# yum install --installroot=$(SYSROOT) <packages>
|
||||
# (Assuming $(SYSROOT) is on a shared network volume.)
|
||||
# Optionally use a newer toolset (installed on $(SYSROOT)).
|
||||
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
|
||||
SYSROOT = /opt/RHEL7
|
||||
TOOLSET_LOCATION = /opt/rh
|
||||
|
||||
# Do NOT set GNU_BIN (or else ...)!
|
||||
TOOLSET_DIR = $(TOOLSET:%=$(TOOLSET_LOCATION)/%/root)
|
||||
CC = $(SYSROOT)$(TOOLSET_DIR)/bin/gcc
|
||||
CCC = $(SYSROOT)$(TOOLSET_DIR)/bin/g++
|
||||
# Set LD_LIBRARY_PATH and BFLAG only with TOOLSET
|
||||
LD_LIBRARY_PATH = $(if $(TOOLSET),$(SYSROOT)$(TOOLSET_DIR)/lib64)
|
||||
BFLAG = $(if $(TOOLSET),-B$(SYSROOT)$(TOOLSET_DIR)/bin)
|
||||
TARGET_CPPFLAGS += --sysroot=$(SYSROOT) $(BFLAG)
|
||||
TARGET_LDFLAGS += --sysroot=$(SYSROOT) $(BFLAG)
|
||||
4
configure/os/CONFIG.Linux.win32-x86
Normal file
4
configure/os/CONFIG.Linux.win32-x86
Normal file
@@ -0,0 +1,4 @@
|
||||
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
|
||||
|
||||
PATH := /opt/wine-msvc-2017/bin/x86:$(PATH)
|
||||
export WINEPREFIX = $(HOME)/.wine-$(EPICS_HOST_ARCH)
|
||||
4
configure/os/CONFIG.Linux.windows-x64
Normal file
4
configure/os/CONFIG.Linux.windows-x64
Normal file
@@ -0,0 +1,4 @@
|
||||
include $(CONFIG)/os/CONFIG.windows-x64.windows-x64
|
||||
|
||||
PATH := /opt/wine-msvc-2017/bin/x64:$(PATH)
|
||||
export WINEPREFIX = $(HOME)/.wine-$(EPICS_HOST_ARCH)
|
||||
@@ -1,5 +1 @@
|
||||
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
|
||||
|
||||
PATH_FILTER = $(subst /,/,$(1))
|
||||
|
||||
PATH := /opt/wine-msvc-2017/bin/x86:$(PATH)
|
||||
include $(CONFIG)/os/CONFIG.Linux.win32-x86
|
||||
|
||||
@@ -1,5 +1 @@
|
||||
include $(CONFIG)/os/CONFIG.windows-x64.windows-x64
|
||||
|
||||
PATH_FILTER = $(subst /,/,$(1))
|
||||
|
||||
PATH := /opt/wine-msvc-2017/bin/x64:$(PATH)
|
||||
include $(CONFIG)/os/CONFIG.Linux.windows-x64
|
||||
|
||||
4
configure/os/CONFIG.RHEL8-x86_64.RHEL7-x86_64
Normal file
4
configure/os/CONFIG.RHEL8-x86_64.RHEL7-x86_64
Normal file
@@ -0,0 +1,4 @@
|
||||
include $(CONFIG)/os/CONFIG.Cross_64.RHEL7-x86_64
|
||||
|
||||
#TOOLSET = devtoolset-11
|
||||
#STD_CXXFLAGS = -std=c++17
|
||||
@@ -1,2 +1,8 @@
|
||||
# Include common linux definitions
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
|
||||
# Use gcc 11 from gcc-toolset-11
|
||||
GNU_BIN = /opt/rh/gcc-toolset-11/root/usr/bin
|
||||
# Fix bug in gcc-toolset-11 calling the old assembler
|
||||
TARGET_CFLAGS += -B$(GNU_BIN)
|
||||
STD_CXXFLAGS = -std=c++17
|
||||
|
||||
1
configure/os/CONFIG.RHEL8-x86_64.nilrt7-armv7a
Normal file
1
configure/os/CONFIG.RHEL8-x86_64.nilrt7-armv7a
Normal file
@@ -0,0 +1 @@
|
||||
GNU_BIN=/opt/RHEL7/bin
|
||||
@@ -1,5 +1 @@
|
||||
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
|
||||
|
||||
PATH_FILTER = $(subst /,/,$(1))
|
||||
|
||||
PATH := /opt/wine-msvc-2017/bin/x86:$(PATH)
|
||||
include $(CONFIG)/os/CONFIG.Linux.win32-x86
|
||||
|
||||
@@ -1,5 +1 @@
|
||||
include $(CONFIG)/os/CONFIG.windows-x64.windows-x64
|
||||
|
||||
PATH_FILTER = $(subst /,/,$(1))
|
||||
|
||||
PATH := /opt/wine-msvc-2017/bin/x64:$(PATH)
|
||||
include $(CONFIG)/os/CONFIG.Linux.windows-x64
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
#RTEMS_VERSION = 5
|
||||
#RTEMS_BASE = /usr/local/vw/rtems/rtems-5.1
|
||||
|
||||
# PSI:
|
||||
RTEMS_BASE = /opt/rtems/$(RTEMS_VERSION)
|
||||
|
||||
# Cross-compile toolchain in $(RTEMS_TOOLS)/bin
|
||||
#
|
||||
RTEMS_TOOLS = $(RTEMS_BASE)
|
||||
|
||||
@@ -71,6 +71,7 @@ GNU_DIR = $(GNU_DIR_$(VXWORKS_MAJOR_VERSION))
|
||||
OP_SYS_CFLAGS += -fno-strict-aliasing
|
||||
|
||||
OP_SYS_INCLUDE_CPPFLAGS_5 += -include $(VX_DIR)/target/h/vxWorks.h
|
||||
OP_SYS_INCLUDE_CPPFLAGS_5 += -I$(EPICS_BASE)/include/os/vxWorks/vxWorks5
|
||||
OP_SYS_INCLUDE_CPPFLAGS_6 += -include $(VX_DIR)/target/h/vxWorks.h
|
||||
OP_SYS_INCLUDE_CPPFLAGS_7 += -include vxWorks.h
|
||||
OP_SYS_INCLUDE_CPPFLAGS = $(OP_SYS_INCLUDE_CPPFLAGS_$(VXWORKS_MAJOR_VERSION))
|
||||
@@ -79,7 +80,7 @@ OP_SYS_LDFLAGS += $(OP_SYS_LDFLAGS_$@)
|
||||
OP_SYS_LDFLAGS_softIoc = -whole-archive
|
||||
OP_SYS_LDFLAGS_softIocPVA = -whole-archive
|
||||
|
||||
# code flags
|
||||
# code flags (delete -fno-implicit-templates)
|
||||
CODE_CXXFLAGS =
|
||||
|
||||
# WIND_BASE is where you installed the Wind River software.
|
||||
|
||||
@@ -12,17 +12,7 @@ CROSS_COMPILER_RUNTEST_ARCHS += SL6-x86_64
|
||||
CROSS_COMPILER_TARGET_ARCHS += SL6-x86
|
||||
CROSS_COMPILER_RUNTEST_ARCHS += SL6-x86
|
||||
|
||||
# Cross compilers that don't work on SL6 hosts
|
||||
|
||||
# Debian 10
|
||||
CROSS_COMPILER_TARGET_ARCHS += deb10-x86_64
|
||||
|
||||
# Newer DeltaTau PowerPMAC
|
||||
CROSS_COMPILER_TARGET_ARCHS += gcc8-ppc4xxFP
|
||||
|
||||
# NI Linux Real-Time 7.x
|
||||
# requires RPM gcc-c++-arm-linux-gnu
|
||||
# Not available on RHEL8
|
||||
CROSS_COMPILER_TARGET_ARCHS += nilrt7-armv7a
|
||||
|
||||
# Windows cross builds using Wine
|
||||
CROSS_COMPILER_TARGET_ARCHS += win32-x86 windows-x64
|
||||
|
||||
@@ -4,18 +4,8 @@ include $(CONFIG)/os/CONFIG_SITE.linux-x86_64.Common
|
||||
CROSS_COMPILER_TARGET_ARCHS += RHEL8-x86_64-clang
|
||||
|
||||
# Build for old RHEL7 64 bit
|
||||
#CROSS_COMPILER_TARGET_ARCHS += RHEL7-x86_64
|
||||
|
||||
# Build for old SL6 64 bit
|
||||
#CROSS_COMPILER_TARGET_ARCHS += SL6-x86_64
|
||||
|
||||
# Build for old SL6 32 bit
|
||||
#CROSS_COMPILER_TARGET_ARCHS += SL6-x86
|
||||
CROSS_COMPILER_TARGET_ARCHS += RHEL7-x86_64
|
||||
|
||||
# NI Linux Real-Time 7.x
|
||||
# requires RPM gcc-c++-arm-linux-gnu
|
||||
# not available yet for RHEL8
|
||||
#CROSS_COMPILER_TARGET_ARCHS += nilrt7-armv7a
|
||||
|
||||
# Windows cross builds using Wine
|
||||
CROSS_COMPILER_TARGET_ARCHS += win32-x86 windows-x64
|
||||
CROSS_COMPILER_TARGET_ARCHS += nilrt7-armv7a
|
||||
|
||||
@@ -18,11 +18,11 @@ LD_LIBRARY_PATH=
|
||||
CROSS_COMPILER_TARGET_ARCHS += T2-ppc604
|
||||
|
||||
# vxWorks 6.7 for MVxxxx boards
|
||||
CROSS_COMPILER_TARGET_ARCHS += V67-ppc604
|
||||
#CROSS_COMPILER_TARGET_ARCHS += V67-ppc604
|
||||
|
||||
# vxWorks 6.9 for MVxxxx boards
|
||||
CROSS_COMPILER_TARGET_ARCHS += V69-ppc604
|
||||
CROSS_COMPILER_TARGET_ARCHS += V69-ppc32
|
||||
#CROSS_COMPILER_TARGET_ARCHS += V69-ppc32
|
||||
|
||||
# NI compact RIO
|
||||
CROSS_COMPILER_TARGET_ARCHS += V63-ppc603
|
||||
@@ -45,11 +45,16 @@ CROSS_COMPILER_TARGET_ARCHS += eldk53-ppc4xxFP
|
||||
|
||||
# Test other vxWorks versions
|
||||
#CROSS_COMPILER_TARGET_ARCHS += V66-ppc603
|
||||
CROSS_COMPILER_TARGET_ARCHS += V66-ppc604
|
||||
#CROSS_COMPILER_TARGET_ARCHS += V66-ppc604
|
||||
#CROSS_COMPILER_TARGET_ARCHS += V63-ppc604
|
||||
CROSS_COMPILER_TARGET_ARCHS += V64-ppc604
|
||||
#CROSS_COMPILER_TARGET_ARCHS += V64-ppc604
|
||||
# (No PVA because of old compiler)
|
||||
CROSS_COMPILER_TARGET_ARCHS += V62-ppc604
|
||||
#CROSS_COMPILER_TARGET_ARCHS += V62-ppc604
|
||||
|
||||
# Raspberry Pi
|
||||
CROSS_COMPILER_TARGET_ARCHS += raspbian-arm
|
||||
|
||||
# RTEMS (Can only have 1 RTEMS major version in 1 EPICS installation
|
||||
# because they overwrite their header files.)
|
||||
#CROSS_COMPILER_TARGET_ARCHS += RTEMS49-pc386
|
||||
CROSS_COMPILER_TARGET_ARCHS += RTEMS51-pc686
|
||||
|
||||
@@ -11,8 +11,18 @@ include $(CONFIG)/os/CONFIG_SITE.linux-x86.Common
|
||||
|
||||
GNU_HOST_ARCH_64=x86_64
|
||||
|
||||
# Windows cross builds using Wine
|
||||
CROSS_COMPILER_TARGET_ARCHS += win32-x86 windows-x64
|
||||
|
||||
# IOxOS IFC1211
|
||||
CROSS_COMPILER_TARGET_ARCHS += fslqoriq20-e6500_64
|
||||
|
||||
# Zynq
|
||||
CROSS_COMPILER_TARGET_ARCHS += yocto21-aarch64
|
||||
CROSS_COMPILER_TARGET_ARCHS += yocto40-aarch64
|
||||
|
||||
# Debian 10
|
||||
CROSS_COMPILER_TARGET_ARCHS += deb10-x86_64
|
||||
|
||||
# Newer DeltaTau PowerPMAC
|
||||
CROSS_COMPILER_TARGET_ARCHS += gcc8-ppc4xxFP
|
||||
|
||||
@@ -789,6 +789,18 @@ static void db_queue_event_log (evSubscrip *pevent, db_field_log *pLog)
|
||||
|
||||
LOCKEVQUE (ev_que);
|
||||
|
||||
/* if we have an event on the queue and both the last
|
||||
* event on the queue and the current event are empty,
|
||||
* simply ignore duplicate events.
|
||||
*/
|
||||
if (pevent->npend > 0u
|
||||
&& !dbfl_has_copy(*pevent->pLastLog)
|
||||
&& !dbfl_has_copy(pLog)) {
|
||||
db_delete_field_log(pLog);
|
||||
UNLOCKEVQUE (ev_que);
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* add to task local event que
|
||||
*/
|
||||
|
||||
@@ -2197,12 +2197,12 @@ long dbInitRecordLinks(dbRecordType *rtyp, struct dbCommon *prec)
|
||||
*/
|
||||
|
||||
} else if(dbCanSetLink(plink, &link_info, devsup)!=0) {
|
||||
errlogPrintf("Error: %s.%s: can't initialize link type %d with \"%s\" (type %d)\n",
|
||||
prec->name, pflddes->name, plink->type, plink->text, link_info.ltype);
|
||||
errlogPrintf("Error: %s.%s: can't initialize link type %s with \"%s\" (type %s)\n",
|
||||
prec->name, pflddes->name, pamaplinkType[plink->type], plink->text, pamaplinkType[link_info.ltype]);
|
||||
|
||||
} else if(dbSetLink(plink, &link_info, devsup)) {
|
||||
errlogPrintf("Error: %s.%s: failed to initialize link type %d with \"%s\" (type %d)\n",
|
||||
prec->name, pflddes->name, plink->type, plink->text, link_info.ltype);
|
||||
errlogPrintf("Error: %s.%s: failed to initialize link type %s with \"%s\" (type %s)\n",
|
||||
prec->name, pflddes->name, pamaplinkType[plink->type], plink->text, pamaplinkType[link_info.ltype]);
|
||||
}
|
||||
free(plink->text);
|
||||
plink->text = NULL;
|
||||
|
||||
@@ -280,6 +280,37 @@ static void log_header (
|
||||
struct channel_in_use *pciu;
|
||||
char hostName[256];
|
||||
|
||||
const char * cmd_str [] = {
|
||||
"CA_PROTO_VERSION",
|
||||
"CA_PROTO_EVENT_ADD",
|
||||
"CA_PROTO_EVENT_CANCEL",
|
||||
"CA_PROTO_READ",
|
||||
"CA_PROTO_WRITE",
|
||||
"CA_PROTO_SNAPSHOT",
|
||||
"CA_PROTO_SEARCH",
|
||||
"CA_PROTO_BUILD",
|
||||
"CA_PROTO_EVENTS_OFF",
|
||||
"CA_PROTO_EVENTS_ON",
|
||||
"CA_PROTO_READ_SYNC",
|
||||
"CA_PROTO_ERROR",
|
||||
"CA_PROTO_CLEAR_CHANNEL",
|
||||
"CA_PROTO_RSRV_IS_UP",
|
||||
"CA_PROTO_NOT_FOUND",
|
||||
"CA_PROTO_READ_NOTIFY",
|
||||
"CA_PROTO_READ_BUILD",
|
||||
"REPEATER_CONFIRM",
|
||||
"CA_PROTO_CREATE_CHAN",
|
||||
"CA_PROTO_WRITE_NOTIFY",
|
||||
"CA_PROTO_CLIENT_NAME",
|
||||
"CA_PROTO_HOST_NAME",
|
||||
"CA_PROTO_ACCESS_RIGHTS",
|
||||
"CA_PROTO_ECHO",
|
||||
"REPEATER_REGISTER",
|
||||
"CA_PROTO_SIGNAL",
|
||||
"CA_PROTO_CREATE_CH_FAIL",
|
||||
"CA_PROTO_SERVER_DISCONN"
|
||||
};
|
||||
|
||||
ipAddrToDottedIP (&client->addr, hostName, sizeof(hostName));
|
||||
|
||||
pciu = MPTOPCIU(mp);
|
||||
@@ -289,8 +320,10 @@ static void log_header (
|
||||
hostName, pContext);
|
||||
}
|
||||
|
||||
epicsPrintf ( "CAS: Request from %s => cmmd=%d cid=0x%x type=%d count=%d postsize=%u\n",
|
||||
hostName, mp->m_cmmd, mp->m_cid, mp->m_dataType, mp->m_count, mp->m_postsize);
|
||||
epicsPrintf ( "CAS: %s Request from %s => cmmd=%d (%s) cid=0x%x type=%d count=%d postsize=%u version=%u\n",
|
||||
client->proto==IPPROTO_TCP ? "TCP" : "UDP",
|
||||
hostName, mp->m_cmmd, mp->m_cmmd <= CA_PROTO_LAST_CMMD ? cmd_str[mp->m_cmmd] : "invalid",
|
||||
mp->m_cid, mp->m_dataType, mp->m_count, mp->m_postsize, client->minor_version_number);
|
||||
|
||||
epicsPrintf ( "CAS: Request from %s => available=0x%x \tN=%u paddr=%p\n",
|
||||
hostName, mp->m_available, mnum, (pciu ? (void *)&pciu->dbch : NULL));
|
||||
@@ -319,6 +352,18 @@ unsigned lineno
|
||||
SEND_UNLOCK ( client );
|
||||
}
|
||||
|
||||
/*
|
||||
* bad_udp_cmd_beacon()
|
||||
*/
|
||||
static int bad_udp_cmd_beacon ( caHdrLargeArray *mp,
|
||||
void *pPayload, struct client *pClient )
|
||||
{
|
||||
if (CASDEBUG > 0)
|
||||
log_header ("got a beacon on the wrong UDP port",
|
||||
pClient, mp, pPayload, 0);
|
||||
return RSRV_ERROR;
|
||||
}
|
||||
|
||||
/*
|
||||
* bad_udp_cmd_action()
|
||||
*/
|
||||
@@ -363,6 +408,8 @@ static int tcp_version_action ( caHdrLargeArray *mp, void *pPayload,
|
||||
|
||||
client->minor_version_number = mp->m_count;
|
||||
|
||||
DLOG(3, ("TCP set version %u\n", client->minor_version_number));
|
||||
|
||||
if (!CA_VSUPPORTED(mp->m_count)) {
|
||||
DLOG ( 2, ( "CAS: Ignore version from unsupported client %u\n", mp->m_count ) );
|
||||
return RSRV_ERROR;
|
||||
@@ -1213,6 +1260,7 @@ static int claim_ciu_action ( caHdrLargeArray *mp,
|
||||
struct dbChannel *dbch;
|
||||
char *pName = (char *) pPayload;
|
||||
|
||||
DLOG (3, ("claim_ciu_action: version = %u\n", mp->m_available));
|
||||
/*
|
||||
* The available field is used (abused)
|
||||
* here to communicate the miner version number
|
||||
@@ -2121,6 +2169,8 @@ static int udp_version_action ( caHdrLargeArray *mp, void *pPayload, struct clie
|
||||
{
|
||||
client->minor_version_number = mp->m_count;
|
||||
|
||||
DLOG (3, ("UDP set version %u\n", client->minor_version_number));
|
||||
|
||||
if (!CA_VSUPPORTED(mp->m_count)) {
|
||||
DLOG ( 2, ( "CAS: Ignore version from unsupported client %u\n", mp->m_count ) );
|
||||
return RSRV_ERROR;
|
||||
@@ -2174,6 +2224,9 @@ static int search_reply_udp ( caHdrLargeArray *mp, void *pPayload, struct client
|
||||
size_t spaceNeeded;
|
||||
size_t reasonableMonitorSpace = 10;
|
||||
|
||||
DLOG (3, epicsPrintf("UDP search for \"%.*s\" by %s@%s client version %u, m_count = %u\n",
|
||||
mp->m_postsize, pName, client->pUserName, client->pHostName, client->minor_version_number, mp->m_count));
|
||||
|
||||
if (!CA_VSUPPORTED(mp->m_count)) {
|
||||
DLOG ( 2, ( "CAS: Ignore search from unsupported client %u\n", mp->m_count ) );
|
||||
return RSRV_ERROR;
|
||||
@@ -2261,6 +2314,9 @@ static int search_reply_tcp (
|
||||
size_t spaceNeeded;
|
||||
size_t reasonableMonitorSpace = 10;
|
||||
|
||||
DLOG (3, ("TCP search for \"%.*s\" by %s@%s client version %u, m_count = %u\n",
|
||||
mp->m_postsize, pName, client->pUserName, client->pHostName, client->minor_version_number, mp->m_count));
|
||||
|
||||
if (!CA_VSUPPORTED(mp->m_count)) {
|
||||
DLOG ( 2, ( "CAS: Ignore search from unsupported client %u\n", mp->m_count ) );
|
||||
return RSRV_ERROR;
|
||||
@@ -2368,7 +2424,7 @@ static const pProtoStubUDP udpJumpTable[] =
|
||||
bad_udp_cmd_action,
|
||||
bad_udp_cmd_action,
|
||||
bad_udp_cmd_action,
|
||||
bad_udp_cmd_action,
|
||||
bad_udp_cmd_beacon,
|
||||
bad_udp_cmd_action,
|
||||
bad_udp_cmd_action,
|
||||
bad_udp_cmd_action,
|
||||
@@ -2449,6 +2505,7 @@ int camessage ( struct client *client )
|
||||
pBody = ( void * ) ( mp + 1 );
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* ignore deprecated clients, but let newer clients identify themselves. */
|
||||
if (msg.m_cmmd!=CA_PROTO_VERSION && !CA_VSUPPORTED(client->minor_version_number)) {
|
||||
if (client->proto==IPPROTO_TCP) {
|
||||
@@ -2470,6 +2527,7 @@ int camessage ( struct client *client )
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* disconnect clients that dont send 8 byte
|
||||
|
||||
Submodule modules/pvAccess updated: 3e6e6ae74b...c63d0731bf
Reference in New Issue
Block a user