=================================================================== RCS file: /home/cvs/OpenXM/src/kxx/oxserver00.c,v retrieving revision 1.20 retrieving revision 1.25 diff -u -p -r1.20 -r1.25 --- OpenXM/src/kxx/oxserver00.c 2015/10/09 05:03:37 1.20 +++ OpenXM/src/kxx/oxserver00.c 2020/10/07 07:47:23 1.25 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kxx/oxserver00.c,v 1.19 2015/10/08 11:49:38 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kxx/oxserver00.c,v 1.24 2016/08/28 02:43:15 takayama Exp $ */ /* nullserver01 */ #include #include @@ -8,6 +8,7 @@ #include #include #include +#include /* -lnsl -lsocket /usr/ucblib/libucb.a */ #include "ox_kan.h" #include "serversm.h" @@ -29,11 +30,19 @@ sigjmp_buf EnvOfChildServer; jmp_buf EnvOfChildServer; #endif +void nullserver(int fdStreamIn,int fdStreamOut); +int nullserverCommand(ox_stream ostreamIn,ox_stream ostreamOut); +int nullserver_simplest(int fd); +int KSexecuteString(char *s); // kan96xx/Kan/datatype.h +void cancelAlarm(); // nullstackmachine.c +char *traceShowStack(); // kan96xx/Kan/extern.h +void traceClearStack(); // kan96xx/Kan/extern.h + int JmpMessage = 0; extern int Lisplike; static char *getSuffix(char *s); -main(int argc, char *argv[]) { +void main(int argc, char *argv[]) { char *s; char *forAsir[] = {"callsm1.sm1","callsm1b.sm1"}; char *gnuplot[] = {"callsm1.sm1","gnuplot.sm1"}; @@ -92,7 +101,7 @@ static char *getSuffix(char *s) { } return(s); } -nullserver(int fdStreamIn,int fdStreamOut) { +void nullserver(int fdStreamIn,int fdStreamOut) { int mtag; int message = 1; ox_stream ostreamIn; @@ -131,8 +140,8 @@ nullserver(int fdStreamIn,int fdStreamOut) { if (PacketMonitor) fp2watch(ostreamOut,stdout); } - fprintf(stderr,"Hello world.\n"); OXprintMessage = 1; - JmpMessage = 1; + /* fprintf(stderr,"Hello world.\n"); OXprintMessage = 1; + JmpMessage = 1; */ aaa : ; #if defined(__CYGWIN__) @@ -151,10 +160,10 @@ nullserver(int fdStreamIn,int fdStreamOut) { } Calling_ctrlC_hook = 0; KSexecuteString(" (Computation is interrupted.) "); - signal(SIGUSR1,controlResetHandler); goto aaa; + mysignal(SIGUSR1,controlResetHandler); goto aaa; } else { if (JmpMessage) fprintf(stderr,"Set EnvOfChildServer.\n"); - signal(SIGUSR1,controlResetHandler); + mysignal(SIGUSR1,controlResetHandler); } #if defined(__CYGWIN__) if (MYSIGSETJMP(EnvOfStackMachine,1)) { @@ -181,11 +190,11 @@ nullserver(int fdStreamIn,int fdStreamOut) { RestrictedMode = RestrictedMode_saved; } Calling_ctrlC_hook = 0; - signal(SIGUSR1,controlResetHandler); goto aaa ; + mysignal(SIGUSR1,controlResetHandler); goto aaa ; } else { if (JmpMessage) fprintf(stderr,"Set EnvOfStackMachine.\n"); - if (signal(SIGUSR1,SIG_IGN) != SIG_IGN) { - signal(SIGUSR1,controlResetHandler); + if (mysignal(SIGUSR1,SIG_IGN) != SIG_IGN) { + mysignal(SIGUSR1,controlResetHandler); } } @@ -245,7 +254,7 @@ nullserver(int fdStreamIn,int fdStreamOut) { } } -nullserverCommand(ox_stream ostreamIn,ox_stream ostreamOut) { +int nullserverCommand(ox_stream ostreamIn,ox_stream ostreamOut) { int id; int mtag; int n; @@ -300,7 +309,7 @@ nullserverCommand(ox_stream ostreamIn,ox_stream ostrea }else{ iresult = Sm1_executeStringByLocalParser(); } - OxCritical = 1; signal(SIGUSR1,controlResetHandler); + OxCritical = 1; mysignal(SIGUSR1,controlResetHandler); if (iresult < 0) { emsg = Sm1_popErrorMessage("executeString: "); Sm1_pushError2(SerialCurrent,-1,emsg); @@ -314,7 +323,7 @@ nullserverCommand(ox_stream ostreamIn,ox_stream ostrea }else{ iresult = Sm1_executeStringByLocalParser(); } - OxCritical = 1; signal(SIGUSR1,controlResetHandler); + OxCritical = 1; mysignal(SIGUSR1,controlResetHandler); if (iresult < 0) { emsg = Sm1_popErrorMessage("executeFunction: "); Sm1_pushError2(SerialCurrent,-1,emsg); @@ -328,7 +337,7 @@ nullserverCommand(ox_stream ostreamIn,ox_stream ostrea }else{ iresult = Sm1_executeStringByLocalParser(); } - OxCritical = 1; signal(SIGUSR1,controlResetHandler); + OxCritical = 1; mysignal(SIGUSR1,controlResetHandler); if (iresult < 0) { emsg = Sm1_popErrorMessage("executeFunctionWithOptionalArgument: "); Sm1_pushError2(SerialCurrent,-1,emsg); @@ -354,6 +363,8 @@ nullserverCommand(ox_stream ostreamIn,ox_stream ostrea fprintf(stderr,"This command has not yet been implemented.\n"); return(-1); break; + case SM_nop: + break; default: fprintf(stderr,"Fatal error. Unknown function_id %d\n",id); return(-1); @@ -363,7 +374,7 @@ nullserverCommand(ox_stream ostreamIn,ox_stream ostrea } -nullserver_simplest(int fd) { +int nullserver_simplest(int fd) { int c; while(1) { c = readOneByte(fd); @@ -375,7 +386,7 @@ nullserver_simplest(int fd) { void controlResetHandler(sig) int sig; { - signal(sig,SIG_IGN); + mysignal(sig,SIG_IGN); cancelAlarm(); fprintf(stderr,"From controlResetHandler. OxCritical = %d\n",OxCritical); OxInterruptFlag = 1;