version 1.2, 2001/03/13 02:13:19 |
version 1.12, 2019/03/28 08:03:07 |
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 90 void AsirMain(int,char **); |
|
Line 91 void AsirMain(int,char **); |
|
void OxAsirMain(int,char **); |
void OxAsirMain(int,char **); |
void OxPlotMain(int,char **); |
void OxPlotMain(int,char **); |
|
|
void Init_Asir(int,char **); |
|
int Call_Asir(char *,void *); |
|
void int_handler(int); |
void int_handler(int); |
void set_debug_handles(int); |
void set_debug_handles(int); |
int create_debug_gui(); |
int create_debug_gui(); |
Line 123 void watch_intr() { |
|
Line 122 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 151 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 328 void set_debug_handles(int on) |
|
} |
} |
} |
} |
|
|
|
extern int wfep_mode; |
|
|
void Init_IO() |
void Init_IO() |
{ |
{ |
|
#if _MSC_VER < 1910 |
_setargv(); |
_setargv(); |
if ( !strcmp(__argv[0],"ox_asir") ) { |
#endif |
|
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") ) |
|
|
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(){} |