[BACK]Return to io.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / windows / engine2000

Diff for /OpenXM_contrib2/windows/engine2000/io.c between version 1.1.1.1 and 1.9

version 1.1.1.1, 2000/11/22 06:20:13 version 1.9, 2017/08/30 09:40:31
Line 29 
Line 29 
 #include <io.h>  #include <io.h>
 #include <fcntl.h>  #include <fcntl.h>
 #include <process.h>  #include <process.h>
 #include "../asir2000/include/ca.h"  #include "ca.h"
   
 /* error message structure */  /* error message structure */
   
Line 54  static HANDLE hNotify0,hNotify_Ack0,hIntr0;
Line 54  static HANDLE hNotify0,hNotify_Ack0,hIntr0;
 static HANDLE hDebugNotify,hDebugNotify_Ack,hDebugIntr,hDebugIntr_Ack,hDebugKill;  static HANDLE hDebugNotify,hDebugNotify_Ack,hDebugIntr,hDebugIntr_Ack,hDebugKill;
   
 HANDLE hResizeNotify,hResizeNotify_Ack; /* should be visible from another file */  HANDLE hResizeNotify,hResizeNotify_Ack; /* should be visible from another file */
   HANDLE hMainThreadReady,hCanvasCreated; /* notification for ox_plot */
   
 /* XXX */  /* XXX */
 extern HANDLE hStreamNotify,hStreamNotify_Ack; /* declared in io/ox.c */  extern HANDLE hStreamNotify,hStreamNotify_Ack; /* declared in io/ox.c */
Line 69  static struct ErrMsg Errmsg;
Line 70  static struct ErrMsg Errmsg;
  * interrupt_state : flag to distinguish an Asir error and a cancellation   * interrupt_state : flag to distinguish an Asir error and a cancellation
  */   */
   
 static int emergency;  int emergency;
 static int interrupt_state;  static int interrupt_state;
 int debuggui_is_present;  int debuggui_is_present;
 int messagegui_is_present;  int messagegui_is_present;
Line 123  void watch_intr() {
Line 124  void watch_intr() {
                                 if ( doing_batch )                                  if ( doing_batch )
                                         send_intr();                                          send_intr();
                                 /* for Asir; recv_intr is reset to 0 in Asir */                                  /* for Asir; recv_intr is reset to 0 in Asir */
                                   enter_signal_cs();
                                 recv_intr = 1;                                  recv_intr = 1;
                                   leave_signal_cs();
                                   PulseEvent(hIntr_Ack);
                                 break;                                  break;
                         case WAIT_OBJECT_0+1: /* hKill */                          case WAIT_OBJECT_0+1: /* hKill */
                         default:                          default:
                                 terminate_debug_gui();                                  terminate_debug_gui();
                                 emergency = 1; /* XXX */                                  emergency = 1; /* XXX */
                                 asir_terminate(2);                                  asir_terminate(3);
                                 exit(0);                                  exit(0);
                                 /* NOTREACHED */                                  /* NOTREACHED */
                                 break;                                  break;
Line 149  void ox_watch_intr() {
Line 153  void ox_watch_intr() {
                                 ResetEvent(hOxIntr);                                  ResetEvent(hOxIntr);
                                 if ( doing_batch )                                  if ( doing_batch )
                                         send_intr();                                          send_intr();
                                   enter_signal_cs();
                                 recv_intr = 1;                                  recv_intr = 1;
                                   leave_signal_cs();
                                 break;                                  break;
                         case WAIT_OBJECT_0+1: /* hOxReset */                          case WAIT_OBJECT_0+1: /* hOxReset */
                                 ResetEvent(hOxReset);                                  ResetEvent(hOxReset);
                                 if ( doing_batch )                                  if ( doing_batch )
                                         send_intr();                                          send_intr();
                                   enter_signal_cs();
                                 recv_intr = 2;                                  recv_intr = 2;
                                   leave_signal_cs();
                                 break;                                  break;
                         case WAIT_OBJECT_0+2: /* hOxKill */                          case WAIT_OBJECT_0+2: /* hOxKill */
                                 ResetEvent(hOxKill);                                  ResetEvent(hOxKill);
                                 terminate_debug_gui();                                  terminate_debug_gui();
                                 emergency = 1; /* XXX */                                  emergency = 1; /* XXX */
                                 asir_terminate(2);                                  asir_terminate(3);
                                 /* NOTREACHED */                                  /* NOTREACHED */
                                 break;                                  break;
                 }                  }
Line 322  void set_debug_handles(int on)
Line 330  void set_debug_handles(int on)
         }          }
 }  }
   
   extern int wfep_mode;
   
 void Init_IO()  void Init_IO()
 {  {
         _setargv();          _setargv();
         if ( !strcmp(__argv[0],"ox_asir") ) {          if ( !strncmp(__argv[0],"ox_asir",strlen("ox_asir")) ) {
                   /* ox_asir or ox_asir_wfep */
                   if ( !strcmp(__argv[0],"ox_asir_wfep") ) wfep_mode = 1;
                 OxAsirMain(__argc,__argv);                  OxAsirMain(__argc,__argv);
                 exit(0);                  exit(0);
         } else if ( !strcmp(__argv[0],"ox_plot") )          } else if ( !strcmp(__argv[0],"ox_plot") )
Line 342  void Init_IO()
Line 354  void Init_IO()
 void AsirMain(int argc, char **argv)  void AsirMain(int argc, char **argv)
 {  {
         DWORD tid;          DWORD tid;
         int ret;  
   
         hRead = (void *)atoi(__argv[1]);          hRead = (void *)atoi(__argv[1]);
         hWrite = (void *)atoi(__argv[2]);          hWrite = (void *)atoi(__argv[2]);
Line 378  void OxAsirMain(int argc, char **argv)
Line 389  void OxAsirMain(int argc, char **argv)
 {  {
         int create_message;          int create_message;
         int tid;          int tid;
         int ret;  
   
         ox_sock_id = atoi(__argv[1]);          ox_sock_id = atoi(__argv[1]);
         create_message = atoi(__argv[2]);          create_message = atoi(__argv[2]);
Line 410  void OxPlotMain(int argc, char **argv)
Line 420  void OxPlotMain(int argc, char **argv)
         DWORD tid;          DWORD tid;
         DWORD mypid;          DWORD mypid;
         char eventname[BUFSIZ];          char eventname[BUFSIZ];
         int ret;  
   
         ox_sock_id = atoi(argv[1]);          ox_sock_id = atoi(argv[1]);
         do_message = atoi(argv[2]);          do_message = atoi(argv[2]);
Line 434  void OxPlotMain(int argc, char **argv)
Line 443  void OxPlotMain(int argc, char **argv)
         hResizeNotify = CreateEvent(NULL,TRUE,FALSE,eventname);          hResizeNotify = CreateEvent(NULL,TRUE,FALSE,eventname);
         sprintf(eventname,"resize_notify_ack_%d",mypid);          sprintf(eventname,"resize_notify_ack_%d",mypid);
         hResizeNotify_Ack = CreateEvent(NULL,TRUE,FALSE,eventname);          hResizeNotify_Ack = CreateEvent(NULL,TRUE,FALSE,eventname);
           sprintf(eventname,"mainthreadready_%d",mypid);
           hMainThreadReady = CreateEvent(NULL,TRUE,FALSE,eventname);
           sprintf(eventname,"canvascreated_%d",mypid);
           hCanvasCreated = CreateEvent(NULL,TRUE,FALSE,eventname);
   
         hWatchStreamThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ox_watch_stream,NULL,0,&tid);          hWatchStreamThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ox_watch_stream,NULL,0,&tid);
 //      ret = SetThreadPriority(hWatchStreamThread,THREAD_PRIORITY_BELOW_NORMAL);  //      ret = SetThreadPriority(hWatchStreamThread,THREAD_PRIORITY_BELOW_NORMAL);
Line 446  void OxPlotMain(int argc, char **argv)
Line 459  void OxPlotMain(int argc, char **argv)
   
         /* process_args() increments argv */          /* process_args() increments argv */
         plot_argc = argc-5;          plot_argc = argc-5;
         plot_argv = argc+5;          plot_argv = argv+5;
         hComputingThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ox_plot_main,NULL,0,&tid);          hComputingThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ox_plot_main,NULL,0,&tid);
 //      ret = SetThreadPriority(hComputingThread,THREAD_PRIORITY_ABOVE_NORMAL);  //      ret = SetThreadPriority(hComputingThread,THREAD_PRIORITY_ABOVE_NORMAL);
 //      if ( !ret )  //      if ( !ret )
Line 558  void set_error(int id,char *reason,char *action)
Line 571  void set_error(int id,char *reason,char *action)
 }  }
   
 /* dummy functions */  /* dummy functions */
 reset_current_computation(){}  void reset_current_computation(){}
 set_selection(){}  void set_selection(){}
 reset_selection(){}  void reset_selection(){}
 set_busy(){}  void set_busy(){}
 reset_busy(){}  void reset_busy(){}

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.9

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>