diff --git a/smi/CMakeLists.txt.64_gnu90 b/smi/CMakeLists.txt.64_gnu90 index ff1eee913d4a4ff22658bf3e5ee5fa17c69cd01b..5122d588c9a21487f0fab24a78aa9c6eee1c4a70 100644 --- a/smi/CMakeLists.txt.64_gnu90 +++ b/smi/CMakeLists.txt.64_gnu90 @@ -9,13 +9,14 @@ endif() # RTAI if($ENV{RTAI}) -SET(RTCFLAGS "$(shell rtai-config --lxrt-cflags) -D_RTAI -Wall -std=gnu90") +SET(RTCFLAGS "$(shell rtai-config --lxrt-cflags) -D_RTAI -Wall -std=gnu90 +-D_64") else() # PREEMPT_RT -SET(RTCFLAGS "-O2 -Wall -fno-stack-protector -std=gnu90") +SET(RTCFLAGS "-O2 -Wall -fno-stack-protector -std=gnu90 -D_64") endif() -SET(NRTCFLAGS "-D_NRT -O2 -Wall -std=gnu90") +SET(NRTCFLAGS "-D_NRT -D_64 -O2 -Wall -std=gnu90") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../bin) diff --git a/smi/src/nrt_system.c b/smi/src/nrt_system.c index 940f11871df2e5aec6a2ff3fe4e1f4727aa2f3d5..1d11dc46da2a0fa607a2aff14f6937814b9bc7c0 100644 --- a/smi/src/nrt_system.c +++ b/smi/src/nrt_system.c @@ -388,10 +388,15 @@ int nrtSmi(char *esmFile, char *tssFile, char *tdeFile, char *cfgFile) { /* check size of data types */ if (sizeof(char)!=CHAR_S || sizeof(short)!=SHORT_S || sizeof(int)!=INT_S || sizeof(long)!=LONG_S || - sizeof(RTIME)!=RTIME_S) + sizeof(RTIME)!=RTIME_S || sizeof(float)!=FLOAT_S || + sizeof(double)!=DOUBLE_S) { error=4; printf("[nrtSmi] data type mismatch\n"); +//printf("CHAR_BIT=%d\n",CHAR_BIT); +//printf("%d %d %d %d %d\n",CHAR_S,SHORT_S,INT_S,LONG_S,RTIME_S); +//printf("%ld %ld %ld %ld %ld\n",sizeof(char),sizeof(short),sizeof(int), +//sizeof(long),sizeof(RTIME)); goto exit; } diff --git a/smi/src/rt_def.h b/smi/src/rt_def.h index 2b39eaf1ca62328cc93275767ccc704d1a46ead8..10bf73706e9638e56833c0d9a2c2a7f838412fa4 100644 --- a/smi/src/rt_def.h +++ b/smi/src/rt_def.h @@ -20,7 +20,11 @@ #define CHAR_S 1 #define SHORT_S 2 #define INT_S 4 +#ifdef _64 +#define LONG_S 8 +#elif #define LONG_S 4 +#endif #define RTIME_S 8 #define DOUBLE_S 8 #define FLOAT_S 4