diff --git a/slsDetectorServers/CMakeLists.txt b/slsDetectorServers/CMakeLists.txt index 20948bac8..af0dcd622 100644 --- a/slsDetectorServers/CMakeLists.txt +++ b/slsDetectorServers/CMakeLists.txt @@ -20,10 +20,10 @@ install(TARGETS slsProjectCSettings ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) -add_subdirectory(ctbDetectorServer) -add_subdirectory(eigerDetectorServer) -add_subdirectory(gotthardDetectorServer) -add_subdirectory(jungfrauDetectorServer) +#add_subdirectory(ctbDetectorServer) +#add_subdirectory(eigerDetectorServer) +#add_subdirectory(gotthardDetectorServer) +#add_subdirectory(jungfrauDetectorServer) add_subdirectory(mythen3DetectorServer) -add_subdirectory(gotthard2DetectorServer) -add_subdirectory(moenchDetectorServer) +#add_subdirectory(gotthard2DetectorServer) +#add_subdirectory(moenchDetectorServer) diff --git a/slsDetectorServers/ctbDetectorServer/CMakeLists.txt b/slsDetectorServers/ctbDetectorServer/CMakeLists.txt index 1b97a4314..899cd8c8f 100644 --- a/slsDetectorServers/ctbDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/ctbDetectorServer/CMakeLists.txt @@ -17,6 +17,7 @@ add_executable(ctbDetectorServer_virtual ../slsDetectorServer/src/MAX1932.c ../slsDetectorServer/src/programFpgaBlackfin.c ../slsDetectorServer/src/communication_virtual.c + ../slsDetectorServer/src/sharedMemory.c ) include_directories( diff --git a/slsDetectorServers/ctbDetectorServer/Makefile b/slsDetectorServers/ctbDetectorServer/Makefile index c5e3a1593..6d6aab318 100755 --- a/slsDetectorServers/ctbDetectorServer/Makefile +++ b/slsDetectorServers/ctbDetectorServer/Makefile @@ -6,13 +6,13 @@ support_lib = ../../slsSupportLib/include/ CROSS = bfin-uclinux- CC = $(CROSS)gcc CFLAGS += -Wall -std=gnu99 -DCHIPTESTBOARDD -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(current_dir) #-DDEBUG1 #-DVERBOSEI #-DVERBOSE -LDLIBS += -lm +LDLIBS += -lm -lrt -pthread PROGS = ctbDetectorServer DESTDIR ?= bin INSTMODE = 0777 SRCS = slsDetectorFunctionList.c -SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)blackfin.c $(main_src)common.c $(main_src)commonServerFunctions.c $(main_src)communication_funcs_UDP.c $(main_src)UDPPacketHeaderGenerator.c $(main_src)AD7689.c $(main_src)AD9257.c $(main_src)ALTERA_PLL.c $(main_src)I2C.c $(main_src)INA226.c $(main_src)LTC2620.c $(main_src)MAX1932.c $(main_src)programFpgaBlackfin.c +SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)blackfin.c $(main_src)common.c $(main_src)commonServerFunctions.c $(main_src)communication_funcs_UDP.c $(main_src)UDPPacketHeaderGenerator.c $(main_src)AD7689.c $(main_src)AD9257.c $(main_src)ALTERA_PLL.c $(main_src)I2C.c $(main_src)INA226.c $(main_src)LTC2620.c $(main_src)MAX1932.c $(main_src)programFpgaBlackfin.c $(main_src)/sharedMemory.c OBJS = $(SRCS:.c=.o) diff --git a/slsDetectorServers/eigerDetectorServer/CMakeLists.txt b/slsDetectorServers/eigerDetectorServer/CMakeLists.txt index c4d8f5260..da89f30e7 100644 --- a/slsDetectorServers/eigerDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/eigerDetectorServer/CMakeLists.txt @@ -6,6 +6,7 @@ set(src ../slsDetectorServer/src/communication_funcs_UDP.c ../slsDetectorServer/src/common.c ../slsDetectorServer/src/communication_virtual.c + ../slsDetectorServer/src/sharedMemory.c ) include_directories( diff --git a/slsDetectorServers/eigerDetectorServer/Makefile b/slsDetectorServers/eigerDetectorServer/Makefile index 614ea0cdf..ff75189d6 100755 --- a/slsDetectorServers/eigerDetectorServer/Makefile +++ b/slsDetectorServers/eigerDetectorServer/Makefile @@ -7,13 +7,13 @@ BLACKFIN_CC = bfin-uclinux-gcc CROSS = powerpc-4xx-softfloat- CC = $(CROSS)gcc CFLAGS += -Wall -std=gnu99 -DEIGERD -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(current_dir) #-DDEBUG1 #-DVERBOSEI #-DVERBOSE -LDLIBS += -lm +LDLIBS += -lm -lrt -pthread PROGS = eigerDetectorServer DESTDIR = bin INSTMODE = 0777 SRCS = slsDetectorFunctionList.c HardwareIO.c LocalLinkInterface.c FebInterface.c FebControl.c Beb.c -SRCS += $(main_src)communication_funcs.c $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs_UDP.c $(main_src)common.c +SRCS += $(main_src)communication_funcs.c $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs_UDP.c $(main_src)common.c $(main_src)/sharedMemory.c OBJS = $(SRCS:.c=.o) diff --git a/slsDetectorServers/gotthard2DetectorServer/CMakeLists.txt b/slsDetectorServers/gotthard2DetectorServer/CMakeLists.txt index 9fb311b04..2848eadf6 100644 --- a/slsDetectorServers/gotthard2DetectorServer/CMakeLists.txt +++ b/slsDetectorServers/gotthard2DetectorServer/CMakeLists.txt @@ -12,6 +12,7 @@ add_executable(gotthard2DetectorServer_virtual ../slsDetectorServer/src/ASIC_Driver.c ../slsDetectorServer/src/programFpgaNios.c ../slsDetectorServer/src/communication_virtual.c + ../slsDetectorServer/src/sharedMemory.c ) include_directories( diff --git a/slsDetectorServers/gotthard2DetectorServer/Makefile b/slsDetectorServers/gotthard2DetectorServer/Makefile index eb6f71427..273630224 100755 --- a/slsDetectorServers/gotthard2DetectorServer/Makefile +++ b/slsDetectorServers/gotthard2DetectorServer/Makefile @@ -6,13 +6,13 @@ support_lib = ../../slsSupportLib/include/ CROSS = nios2-buildroot-linux-gnu- CC = $(CROSS)gcc CFLAGS += -Wall -std=gnu99 -DGOTTHARD2D -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(current_dir) #-DDEBUG1 #-DVERBOSEI #-DVERBOSE -LDLIBS += -lm +LDLIBS += -lm -lrt -pthread PROGS = gotthard2DetectorServer DESTDIR ?= bin INSTMODE = 0777 SRCS = slsDetectorFunctionList.c -SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)nios.c $(main_src)common.c $(main_src)DAC6571.c $(main_src)LTC2620_Driver.c $(main_src)ALTERA_PLL_CYCLONE10.c $(main_src)ASIC_Driver.c $(main_src)/programFpgaNios.c +SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)nios.c $(main_src)common.c $(main_src)DAC6571.c $(main_src)LTC2620_Driver.c $(main_src)ALTERA_PLL_CYCLONE10.c $(main_src)ASIC_Driver.c $(main_src)/programFpgaNios.c $(main_src)/sharedMemory.c OBJS = $(SRCS:.c=.o) diff --git a/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt b/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt index 31c30b70e..4cec6f7cc 100644 --- a/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable(gotthardDetectorServer_virtual ../slsDetectorServer/src/commonServerFunctions.c ../slsDetectorServer/src/communication_funcs_UDP.c ../slsDetectorServer/src/communication_virtual.c + ../slsDetectorServer/src/sharedMemory.c ) include_directories( diff --git a/slsDetectorServers/gotthardDetectorServer/Makefile b/slsDetectorServers/gotthardDetectorServer/Makefile index b54210754..2264c5554 100755 --- a/slsDetectorServers/gotthardDetectorServer/Makefile +++ b/slsDetectorServers/gotthardDetectorServer/Makefile @@ -6,13 +6,13 @@ support_lib = ../../slsSupportLib/include/ CROSS = bfin-uclinux- CC = $(CROSS)gcc CFLAGS += -Wall -std=gnu99 -DGOTTHARDD -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(current_dir)#-DVERBOSEI #-DVERBOSE -LDLIBS += -lm +LDLIBS += -lm -lrt -pthread PROGS = gotthardDetectorServer DESTDIR ?= bin INSTMODE = 0777 SRCS = slsDetectorFunctionList.c -SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)blackfin.c $(main_src)AD9252.c $(main_src)AD9257.c $(main_src)LTC2620.c $(main_src)common.c $(main_src)commonServerFunctions.c +SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)blackfin.c $(main_src)AD9252.c $(main_src)AD9257.c $(main_src)LTC2620.c $(main_src)common.c $(main_src)commonServerFunctions.c $(main_src)/sharedMemory.c OBJS = $(SRCS:.c=.o) all: clean $(PROGS) diff --git a/slsDetectorServers/jungfrauDetectorServer/CMakeLists.txt b/slsDetectorServers/jungfrauDetectorServer/CMakeLists.txt index 2ae085da8..097c645c9 100644 --- a/slsDetectorServers/jungfrauDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/jungfrauDetectorServer/CMakeLists.txt @@ -13,6 +13,7 @@ add_executable(jungfrauDetectorServer_virtual ../slsDetectorServer/src/programFpgaBlackfin.c ../slsDetectorServer/src/communication_funcs_UDP.c ../slsDetectorServer/src/communication_virtual.c + ../slsDetectorServer/src/sharedMemory.c ) target_include_directories(jungfrauDetectorServer_virtual diff --git a/slsDetectorServers/jungfrauDetectorServer/Makefile b/slsDetectorServers/jungfrauDetectorServer/Makefile index 8b3fef852..1a225159c 100755 --- a/slsDetectorServers/jungfrauDetectorServer/Makefile +++ b/slsDetectorServers/jungfrauDetectorServer/Makefile @@ -6,13 +6,13 @@ support_lib = ../../slsSupportLib/include/ CROSS = bfin-uclinux- CC = $(CROSS)gcc CFLAGS += -Wall -std=gnu99 -DJUNGFRAUD -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(current_dir)#-DVERBOSEI #-DVERBOSE -LDLIBS += -lm +LDLIBS += -lm -lrt -pthread PROGS = jungfrauDetectorServer DESTDIR ?= bin INSTMODE = 0777 SRCS = slsDetectorFunctionList.c -SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)blackfin.c $(main_src)common.c $(main_src)commonServerFunctions.c $(main_src)AD9257.c $(main_src)ALTERA_PLL.c $(main_src)LTC2620.c $(main_src)MAX1932.c $(main_src)programFpgaBlackfin.c +SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)blackfin.c $(main_src)common.c $(main_src)commonServerFunctions.c $(main_src)AD9257.c $(main_src)ALTERA_PLL.c $(main_src)LTC2620.c $(main_src)MAX1932.c $(main_src)programFpgaBlackfin.c $(main_src)/sharedMemory.c OBJS = $(SRCS:.c=.o) diff --git a/slsDetectorServers/moenchDetectorServer/CMakeLists.txt b/slsDetectorServers/moenchDetectorServer/CMakeLists.txt index 2b9ae2846..e9d9a70fa 100644 --- a/slsDetectorServers/moenchDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/moenchDetectorServer/CMakeLists.txt @@ -15,6 +15,7 @@ add_executable(moenchDetectorServer_virtual ../slsDetectorServer/src/programFpgaBlackfin.c ../slsDetectorServer/src/readDefaultPattern.c ../slsDetectorServer/src/communication_virtual.c + ../slsDetectorServer/src/sharedMemory.c ) include_directories( diff --git a/slsDetectorServers/moenchDetectorServer/Makefile b/slsDetectorServers/moenchDetectorServer/Makefile index f66350e35..a4d07b266 100755 --- a/slsDetectorServers/moenchDetectorServer/Makefile +++ b/slsDetectorServers/moenchDetectorServer/Makefile @@ -6,13 +6,13 @@ support_lib = ../../slsSupportLib/include/ CROSS = bfin-uclinux- CC = $(CROSS)gcc CFLAGS += -Wall -std=gnu99 -DMOENCHD -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(current_dir)#-DVERBOSEI #-DVERBOSE -LDLIBS += -lm +LDLIBS += -lm -lrt -pthread PROGS = moenchDetectorServer DESTDIR ?= bin INSTMODE = 0777 SRCS = slsDetectorFunctionList.c -SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)blackfin.c $(main_src)common.c $(main_src)commonServerFunctions.c $(main_src)communication_funcs_UDP.c $(main_src)UDPPacketHeaderGenerator.c $(main_src)AD9257.c $(main_src)ALTERA_PLL.c $(main_src)LTC2620.c $(main_src)MAX1932.c $(main_src)programFpgaBlackfin.c $(main_src)readDefaultPattern.c +SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)blackfin.c $(main_src)common.c $(main_src)commonServerFunctions.c $(main_src)communication_funcs_UDP.c $(main_src)UDPPacketHeaderGenerator.c $(main_src)AD9257.c $(main_src)ALTERA_PLL.c $(main_src)LTC2620.c $(main_src)MAX1932.c $(main_src)programFpgaBlackfin.c $(main_src)readDefaultPattern.c $(main_src)/sharedMemory.c OBJS = $(SRCS:.c=.o) diff --git a/slsDetectorServers/mythen3DetectorServer/CMakeLists.txt b/slsDetectorServers/mythen3DetectorServer/CMakeLists.txt index 57da8d3df..b109aa3d0 100644 --- a/slsDetectorServers/mythen3DetectorServer/CMakeLists.txt +++ b/slsDetectorServers/mythen3DetectorServer/CMakeLists.txt @@ -10,7 +10,7 @@ add_executable(mythen3DetectorServer_virtual ../slsDetectorServer/src/LTC2620_Driver.c ../slsDetectorServer/src/ALTERA_PLL_CYCLONE10.c ../slsDetectorServer/src/programFpgaNios.c - ../slsDetectorServer/src/communication_virtual.c + ../slsDetectorServer/src/sharedMemory.c ) include_directories( diff --git a/slsDetectorServers/mythen3DetectorServer/Makefile b/slsDetectorServers/mythen3DetectorServer/Makefile index 69848e5d3..c0cd3f3f2 100755 --- a/slsDetectorServers/mythen3DetectorServer/Makefile +++ b/slsDetectorServers/mythen3DetectorServer/Makefile @@ -6,13 +6,13 @@ support_lib = ../../slsSupportLib/include/ CROSS = nios2-buildroot-linux-gnu- CC = $(CROSS)gcc CFLAGS += -Wall -std=gnu99 -DMYTHEN3D -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(current_dir) #-DDEBUG1 #-DVERBOSEI #-DVERBOSE -LDLIBS += -lm +LDLIBS += -lm -lrt -pthread PROGS = mythen3DetectorServer DESTDIR ?= bin INSTMODE = 0777 SRCS = slsDetectorFunctionList.c -SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)nios.c $(main_src)DAC6571.c $(main_src)common.c $(main_src)LTC2620_Driver.c $(main_src)ALTERA_PLL_CYCLONE10.c $(main_src)/programFpgaNios.c +SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)nios.c $(main_src)DAC6571.c $(main_src)common.c $(main_src)LTC2620_Driver.c $(main_src)ALTERA_PLL_CYCLONE10.c $(main_src)/programFpgaNios.c $(main_src)/sharedMemory.c OBJS = $(SRCS:.c=.o) diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 391e938a8..482f0694d 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -5,10 +5,10 @@ #include "RegisterDefs.h" #include "clogger.h" #include "common.h" +#include "sharedMemory.h" #include "versionAPI.h" #ifdef VIRTUAL #include "communication_funcs_UDP.h" -#include "communication_virtual.h" #endif #include @@ -32,6 +32,7 @@ extern void getIpAddressinString(char *cip, uint32_t ip); int initError = OK; int initCheckDone = 0; char initErrorMessage[MAX_STR_LENGTH]; +sharedMem *thisMem; #ifdef VIRTUAL pthread_t pthread_virtual_tid; @@ -333,7 +334,9 @@ void initStopServer() { #ifdef VIRTUAL virtual_stop = 0; if (!isControlServer) { - ComVirtual_setStop(virtual_stop); + lockSharedMemory(thisMem); + thisMem->stop = virtual_stop; + unlockSharedMemory(thisMem); } #endif } @@ -390,7 +393,9 @@ void setupDetector() { #ifdef VIRTUAL virtual_status = 0; if (isControlServer) { - ComVirtual_setStatus(virtual_status); + lockSharedMemory(thisMem); + thisMem->status = virtual_status; + unlockSharedMemory(thisMem); } #endif @@ -1980,21 +1985,28 @@ int startStateMachine() { } LOG(logINFOBLUE, ("Starting State Machine\n")); // set status to running - virtual_status = 1; if (isControlServer) { - ComVirtual_setStatus(virtual_status); - virtual_stop = ComVirtual_getStop(); + lockSharedMemory(thisMem); + virtual_stop = thisMem->stop; + unlockSharedMemory(thisMem); if (virtual_stop != 0) { LOG(logERROR, ("Cant start acquisition. " "Stop server has not updated stop status to 0\n")); return FAIL; } + + virtual_status = 1; + lockSharedMemory(thisMem); + thisMem->status = virtual_status; + unlockSharedMemory(thisMem); } if (pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); virtual_status = 0; if (isControlServer) { - ComVirtual_setStatus(virtual_status); + lockSharedMemory(thisMem); + thisMem->status = virtual_status; + unlockSharedMemory(thisMem); } return FAIL; } @@ -2038,7 +2050,9 @@ void *start_timer(void *arg) { for (int frameNr = 0; frameNr != numFrames; ++frameNr) { // update the virtual stop from stop server - virtual_stop = ComVirtual_getStop(); + lockSharedMemory(thisMem); + virtual_stop = thisMem->stop; + unlockSharedMemory(thisMem); // check if virtual_stop is high if (virtual_stop == 1) { break; @@ -2089,7 +2103,9 @@ void *start_timer(void *arg) { virtual_status = 0; if (isControlServer) { - ComVirtual_setStatus(virtual_status); + lockSharedMemory(thisMem); + thisMem->status = virtual_status; + unlockSharedMemory(thisMem); } LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; @@ -2101,14 +2117,20 @@ int stopStateMachine() { #ifdef VIRTUAL if (!isControlServer) { virtual_stop = 1; - ComVirtual_setStop(virtual_stop); + lockSharedMemory(thisMem); + thisMem->stop = virtual_stop; + unlockSharedMemory(thisMem); // read till status is idle int tempStatus = 1; while (tempStatus == 1) { - tempStatus = ComVirtual_getStatus(); + lockSharedMemory(thisMem); + tempStatus = thisMem->status; + unlockSharedMemory(thisMem); } virtual_stop = 0; - ComVirtual_setStop(virtual_stop); + lockSharedMemory(thisMem); + thisMem->stop = virtual_stop; + unlockSharedMemory(thisMem); LOG(logINFO, ("Stopped State Machine\n")); } return OK; @@ -2122,7 +2144,9 @@ int stopStateMachine() { enum runStatus getRunStatus() { #ifdef VIRTUAL if (!isControlServer) { - virtual_status = ComVirtual_getStatus(); + lockSharedMemory(thisMem); + virtual_status = thisMem->status; + unlockSharedMemory(thisMem); } if (virtual_status == 0) { LOG(logINFOBLUE, ("Status: IDLE\n")); @@ -2201,7 +2225,9 @@ void readFrame(int *ret, char *mess) { u_int32_t runBusy() { #ifdef VIRTUAL if (!isControlServer) { - virtual_status = ComVirtual_getStatus(); + lockSharedMemory(thisMem); + virtual_status = thisMem->status; + unlockSharedMemory(thisMem); } return virtual_status; #endif diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c index 22e134d2c..b002ff5f9 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c @@ -3,13 +3,11 @@ #include "clogger.h" #include "communication_funcs.h" +#include "sharedMemory.h" #include "slsDetectorServer_defs.h" #include "slsDetectorServer_funcs.h" #include "sls_detector_defs.h" #include "versionAPI.h" -#ifdef VIRTUAL -#include "communication_virtual.h" -#endif #include #include @@ -28,6 +26,7 @@ extern int checkModuleFlag; #ifdef GOTTHARDD extern int phaseShift; #endif +extern sharedMem *thisMem; void error(char *msg) { perror(msg); } @@ -100,6 +99,10 @@ int main(int argc, char *argv[]) { // control server if (isControlServer) { + LOG(logINFOBLUE, ("Control Server [%d]\n", portno)); + if (!createSharedMemory(&thisMem, portno)) { + return -1; + } #ifdef STOP_SERVER // start stop server process char cmd[MAX_STR_LENGTH]; @@ -121,21 +124,14 @@ int main(int argc, char *argv[]) { LOG(logDEBUG1, ("Command to start stop server:%s\n", cmd)); system(cmd); - LOG(logINFOBLUE, ("Control Server [%d]\n", portno)); -#ifdef VIRTUAL - // creating files for virtual servers to communicate with each other - if (!ComVirtual_createFiles(portno)) { - return -1; - } -#endif #endif } // stop server else { LOG(logINFOBLUE, ("Stop Server [%d]\n", portno)); -#ifdef VIRTUAL - ComVirtual_setFileNames(portno - 1); -#endif + if (!openSharedMemory(&thisMem, portno - 1)) { + return -1; + } } init_detector(); @@ -164,6 +160,17 @@ int main(int argc, char *argv[]) { exitServer(sockfd); + // detach shared memory + if (!detachSharedMemory(&thisMem)) { + return -1; + } + // remove shared memory (control server) + if (isControlServer) { + if (!removeSharedMemory()) { + return -1; + } + } + if (retval == REBOOT) { LOG(logINFORED, ("Rebooting!\n")); fflush(stdout);