winedos / Remove sigalrm handler from ntdll, reserve TEB field
Jukka Heinonen
jhei at iki.fi
Sat Jun 14 16:39:18 CDT 2003
This patch removes SIGALRM handler because winedos
doesn't use it any more and replaces TEB field
alarms with TEB field dpmi_vif. This new field
will be used in SIGUSR2 handler and
INSTR_EmulateInstruction in order to see when
it is time to raise EXCEPTION_VM86_STI in
DOS protected mode.
Changelog:
Remove SIGALRM handler.
Reserve TEB field for DPMI virtual interrupt flag.
Index: include/thread.h
===================================================================
RCS file: /home/wine/wine/include/thread.h,v
retrieving revision 1.71
diff -u -r1.71 thread.h
--- include/thread.h 22 May 2003 03:44:01 -0000 1.71
+++ include/thread.h 14 Jun 2003 21:28:06 -0000
@@ -113,7 +113,7 @@
void *pthread_data; /* --3 220 Data for pthread emulation */
struct async_private *pending_list; /* --3 224 list of pending async operations */
void *driver_data; /* --3 228 Graphics driver private data */
- DWORD alarms; /* --3 22c Data for vm86 mode */
+ DWORD dpmi_vif; /* --3 22c Protected mode virtual interrupt flag */
DWORD vm86_pending; /* --3 230 Data for vm86 mode */
void *vm86_ptr; /* --3 234 Data for vm86 mode */
/* here is plenty space for wine specific fields (don't forget to change pad6!!) */
Index: dlls/ntdll/signal_i386.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/signal_i386.c,v
retrieving revision 1.63
diff -u -r1.63 signal_i386.c
--- dlls/ntdll/signal_i386.c 7 Jun 2003 00:33:13 -0000 1.63
+++ dlls/ntdll/signal_i386.c 14 Jun 2003 21:28:14 -0000
@@ -988,23 +988,6 @@
set_vm86_pend( &context );
restore_context( &context, HANDLER_CONTEXT );
}
-
-
-/**********************************************************************
- * alrm_handler
- *
- * Handler for SIGALRM.
- * Increases the alarm counter and sets the vm86 pending flag.
- */
-static HANDLER_DEF(alrm_handler)
-{
- CONTEXT context;
-
- save_context( &context, HANDLER_CONTEXT );
- NtCurrentTeb()->alarms++;
- set_vm86_pend( &context );
- restore_context( &context, HANDLER_CONTEXT );
-}
#endif /* __HAVE_VM86 */
@@ -1148,8 +1131,7 @@
sig_act.ksa_handler = func;
sig_act.ksa_flags = SA_RESTART;
sig_act.ksa_mask = (1 << (SIGINT-1)) |
- (1 << (SIGUSR2-1)) |
- (1 << (SIGALRM-1));
+ (1 << (SIGUSR2-1));
/* point to the top of the stack */
sig_act.ksa_restorer = (char *)NtCurrentTeb()->signal_stack + SIGNAL_STACK_SIZE;
return wine_sigaction( sig, &sig_act, NULL );
@@ -1159,7 +1141,6 @@
sigemptyset( &sig_act.sa_mask );
sigaddset( &sig_act.sa_mask, SIGINT );
sigaddset( &sig_act.sa_mask, SIGUSR2 );
- sigaddset( &sig_act.sa_mask, SIGALRM );
#if defined(linux) || defined(__NetBSD__)
sig_act.sa_flags = SA_RESTART;
@@ -1226,7 +1207,6 @@
#endif
#ifdef __HAVE_VM86
- if (set_handler( SIGALRM, have_sigaltstack, (void (*)())alrm_handler ) == -1) goto error;
if (set_handler( SIGUSR2, have_sigaltstack, (void (*)())usr2_handler ) == -1) goto error;
#endif
@@ -1248,7 +1228,6 @@
sigset_t block_set;
sigemptyset( &block_set );
- sigaddset( &block_set, SIGALRM );
sigaddset( &block_set, SIGIO );
sigaddset( &block_set, SIGHUP );
sigaddset( &block_set, SIGUSR1 );
--
Jukka Heinonen <http://www.iki.fi/jhei/>
More information about the wine-patches
mailing list