diff --git a/smi/CMakeLists.txt b/smi/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..1e37cca124201d8a357c029f50863775ec4ed6b8 --- /dev/null +++ b/smi/CMakeLists.txt @@ -0,0 +1,84 @@ +cmake_minimum_required (VERSION 2.6) +project (smi C) + +if("$ENV{MACHTYPE}" STREQUAL "x86_64") +SET(NRTCFLAGS "-D_NRT -O2 -Wall -std=gnu90") +if($ENV{RTAI}) +# RTAI +SET(RTCFLAGS "$(shell rtai-config --lxrt-cflags) -D_RTAI -Wall -std=gnu90") +SET(RTLIB rtsmirtai) +SET(NRTLIB nrtsmirtai) +else() +# PREEMPT_RT +SET(RTCFLAGS "-O2 -Wall -fno-stack-protector -std=gnu90") +SET(RTLIB rtsmi) +SET(NRTLIB nrtsmi) +endif() +else () +if($ENV{GNU90}) +SET(NRTCFLAGS "-D_NRT -O2 -m32 -Wall -std=gnu90") +if($ENV{RTAI}) +# RTAI +SET(RTCFLAGS "$(shell rtai-config --lxrt-cflags) -D_RTAI -m32 -Wall -std=gnu90") +SET(RTLIB rtsmirtai) +SET(NRTLIB nrtsmirtai) +else() +# PREEMPT_RT +SET(RTCFLAGS "-O2 -m32 -Wall -fno-stack-protector -std=gnu90") +SET(RTLIB rtsmi) +SET(NRTLIB nrtsmi) +endif() +else() +SET(NRTCFLAGS "-D_NRT -O2 -m32 -Wall") +if($ENV{RTAI}) +# RTAI +SET(RTCFLAGS "$(shell rtai-config --lxrt-cflags) -D_RTAI -m32 -Wall") +SET(RTLIB rtsmirtai) +SET(NRTLIB nrtsmirtai) +else() +# PREEMPT_RT +SET(RTCFLAGS "-O2 -m32 -Wall -fno-stack-protector") +SET(RTLIB rtsmi) +SET(NRTLIB nrtsmi) +endif() +endif() +endif() + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../bin) + +include_directories(src) + +set(RTSOURCES +src/rt_system.c +src/shm.c +src/smi.c +src/taskdisp.c +) + +set(NRTSOURCES +src/nrt_system.c +src/shm.c +src/smi_nrt.c +src/smiplay_nrt.c +src/taskdisp_nrt.c +) + +if($ENV{RTAI}) +add_library(rtsmirtai STATIC ${RTSOURCES}) +add_library(nrtsmirtai STATIC ${NRTSOURCES}) +SET_TARGET_PROPERTIES(rtsmirtai PROPERTIES COMPILE_FLAGS "${RTCFLAGS} ${DEBUGFLAGS}") +SET_TARGET_PROPERTIES(nrtsmirtai PROPERTIES COMPILE_FLAGS "${NRTCFLAGS} ${DEBUGFLAGS}") +else() +add_library(rtsmi STATIC ${RTSOURCES}) +add_library(nrtsmi STATIC ${NRTSOURCES}) +SET_TARGET_PROPERTIES(rtsmi PROPERTIES COMPILE_FLAGS "${RTCFLAGS} ${DEBUGFLAGS}") +SET_TARGET_PROPERTIES(nrtsmi PROPERTIES COMPILE_FLAGS "${NRTCFLAGS} ${DEBUGFLAGS}") +endif() + +if($ENV{RTAI}) +add_custom_target( + rtaicheck.sh + COMMAND ../bin/rtaicheck.sh +) +add_dependencies(rtsmirtai rtaicheck.sh) +endif() diff --git a/smi/src/smi_def.h b/smi/src/smi_def.h index e46b632701872366aeeb9b9e999a61d3201c4982..f5b67912ab6dd71113bd4b6b7d4c794402f2a600 100644 --- a/smi/src/smi_def.h +++ b/smi/src/smi_def.h @@ -10,7 +10,7 @@ #define SMI_LOG_BUF_SIZE (1*1024) -#define MAX_NUMBER_OF_CONCURRENT_STATES 80 +#define MAX_NUMBER_OF_CONCURRENT_STATES 100 #define MAX_NUMBER_OF_REGIONS_PER_SUPERSTATE 32 #define MAX_NUMBER_OF_TRANSITIONS_PER_STATE 16 //8 #define MAX_NUMBER_OF_TRANSITIONS (MAX_NUMBER_OF_ESM_STATES*4) diff --git a/smi/src/smiplay_nrt.c b/smi/src/smiplay_nrt.c index f373fb0994ac0ed01b3bb1be642e88dc175ee5f5..7d472a032c52a0d1c3b2b05ac538984301b19c8b 100644 --- a/smi/src/smiplay_nrt.c +++ b/smi/src/smiplay_nrt.c @@ -10,6 +10,7 @@ #include "smi_def.h" +int printOnce=0; // UDP socket related unsigned short usiGUIUDPPort, usiLocalUDPPort; @@ -28,8 +29,11 @@ int initUDPSocket(int *UDP_socket, struct sockaddr_in *UDPRemote_addr, unsigned UDPRemote_addr->sin_port = htons( (u_short) *usiUDPRemote_port ); if ((he=gethostbyname(rgcHostName))==0){ +if (printOnce&1==0) { printf("\n[initUDPSocket] Couldn't resolve \"%s\" host name\n",rgcHostName); fflush(stdout); +printOnce|=1; +} return (-1); } UDPRemote_addr->sin_addr = *((struct in_addr *)he->h_addr); @@ -62,8 +66,10 @@ int initIPC(char *rgcHostName){ usiGUIUDPPort = 7070; sprintf(rgcGUIHostName,"%s",rgcHostName); +if (printOnce&2==0) { printf("[initIPC] %s\n",rgcGUIHostName); - +printOnce|=2; +} return initUDPSocket(&iGUIUDPSocket, &addrGUIUDP, &usiGUIUDPPort,