wine/dlls/ntdll signal_i386.c

Alexandre Julliard julliard at wine.codeweavers.com
Tue Nov 15 12:15:56 CST 2005


ChangeSet ID:	21288
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at winehq.org	2005/11/15 12:15:56

Modified files:
	dlls/ntdll     : signal_i386.c 

Log message:
	Ken Thomases <ken at codeweavers.com>
	Updated context definitions for the latest Darwin/x86.

Patch: http://cvs.winehq.org/patch.py?id=21288

Old revision  New revision  Changes     Path
 1.104         1.105         +20 -20     wine/dlls/ntdll/signal_i386.c

Index: wine/dlls/ntdll/signal_i386.c
diff -u -p wine/dlls/ntdll/signal_i386.c:1.104 wine/dlls/ntdll/signal_i386.c:1.105
--- wine/dlls/ntdll/signal_i386.c:1.104	15 Nov 2005 18:15:56 -0000
+++ wine/dlls/ntdll/signal_i386.c	15 Nov 2005 18:15:56 -0000
@@ -298,29 +298,32 @@ typedef struct
 
 typedef ucontext_t SIGCONTEXT;
 
-#define EAX_sig(context)     ((context)->uc_mcontext->sc.sc_eax)
-#define EBX_sig(context)     ((context)->uc_mcontext->sc.sc_ebx)
-#define ECX_sig(context)     ((context)->uc_mcontext->sc.sc_ecx)
-#define EDX_sig(context)     ((context)->uc_mcontext->sc.sc_edx)
-#define ESI_sig(context)     ((context)->uc_mcontext->sc.sc_esi)
-#define EDI_sig(context)     ((context)->uc_mcontext->sc.sc_edi)
-#define EBP_sig(context)     ((context)->uc_mcontext->sc.sc_ebp)
-
-#define CS_sig(context)      ((context)->uc_mcontext->sc.sc_cs)
-#define DS_sig(context)      ((context)->uc_mcontext->sc.sc_ds)
-#define ES_sig(context)      ((context)->uc_mcontext->sc.sc_es)
-#define FS_sig(context)      ((context)->uc_mcontext->sc.sc_fs)
-#define GS_sig(context)      ((context)->uc_mcontext->sc.sc_gs)
-#define SS_sig(context)      ((context)->uc_mcontext->sc.sc_ss)
+#define EAX_sig(context)     ((context)->uc_mcontext->ss.eax)
+#define EBX_sig(context)     ((context)->uc_mcontext->ss.ebx)
+#define ECX_sig(context)     ((context)->uc_mcontext->ss.ecx)
+#define EDX_sig(context)     ((context)->uc_mcontext->ss.edx)
+#define ESI_sig(context)     ((context)->uc_mcontext->ss.esi)
+#define EDI_sig(context)     ((context)->uc_mcontext->ss.edi)
+#define EBP_sig(context)     ((context)->uc_mcontext->ss.ebp)
+
+#define CS_sig(context)      ((context)->uc_mcontext->ss.cs)
+#define DS_sig(context)      ((context)->uc_mcontext->ss.ds)
+#define ES_sig(context)      ((context)->uc_mcontext->ss.es)
+#define FS_sig(context)      ((context)->uc_mcontext->ss.fs)
+#define GS_sig(context)      ((context)->uc_mcontext->ss.gs)
+#define SS_sig(context)      ((context)->uc_mcontext->ss.ss)
 
-#define EFL_sig(context)     ((context)->uc_mcontext->sc.sc_eflags)
+#define EFL_sig(context)     ((context)->uc_mcontext->ss.eflags)
 
-#define EIP_sig(context)     (*((unsigned long*)&(context)->uc_mcontext->sc.sc_eip))
-#define ESP_sig(context)     (*((unsigned long*)&(context)->uc_mcontext->sc.sc_esp))
+#define EIP_sig(context)     (*((unsigned long*)&(context)->uc_mcontext->ss.eip))
+#define ESP_sig(context)     (*((unsigned long*)&(context)->uc_mcontext->ss.esp))
 
 #define HANDLER_DEF(name) void name( int __signal, siginfo_t *__siginfo, SIGCONTEXT *__context )
 #define HANDLER_CONTEXT (__context)
 
+#define TRAP_sig(context)    ((context)->uc_mcontext->es.trapno)
+#define ERROR_sig(context)   ((context)->uc_mcontext->es.err)
+
 #define FAULT_ADDRESS        (__siginfo->si_addr)
 
 #endif /* __APPLE__ */
@@ -1300,9 +1303,6 @@ BOOL SIGNAL_Init(void)
     ss.ss_sp    = get_signal_stack();
     ss.ss_size  = signal_stack_size;
     ss.ss_flags = 0;
-#ifdef __APPLE__  /* work around MacOS bug */
-    ss.ss_sp = (char *)ss.ss_sp + ss.ss_size;
-#endif
     if (!sigaltstack(&ss, NULL)) have_sigaltstack = 1;
 #ifdef linux
     /* sigaltstack may fail because the kernel is too old, or



More information about the wine-cvs mailing list