aboutsummaryrefslogtreecommitdiffstats
path: root/emulators/wine/files/install-patch-3.3-sys-sigtrap
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/wine/files/install-patch-3.3-sys-sigtrap')
-rw-r--r--emulators/wine/files/install-patch-3.3-sys-sigtrap30
1 files changed, 30 insertions, 0 deletions
diff --git a/emulators/wine/files/install-patch-3.3-sys-sigtrap b/emulators/wine/files/install-patch-3.3-sys-sigtrap
new file mode 100644
index 000000000000..e3004884fd29
--- /dev/null
+++ b/emulators/wine/files/install-patch-3.3-sys-sigtrap
@@ -0,0 +1,30 @@
+Index: i386/i386/trap.c
+===================================================================
+RCS file: /home/cvs/cvs/src/sys/i386/i386/trap.c,v
+retrieving revision 1.133.2.1
+diff -u -u -r1.133.2.1 trap.c
+--- trap.c 1999/08/29 16:05:56 1.133.2.1
++++ trap.c 1999/09/10 14:42:21
+@@ -1041,6 +1084,7 @@
+ int error;
+ int args[8];
+ u_int code;
++ int tracedsyscall = ((frame.tf_eflags & PSL_T) && !(frame.tf_eflags & PSL_VM));
+
+ #ifdef DIAGNOSTIC
+ if (ISPL(frame.tf_cs) != SEL_UPL)
+@@ -1135,10 +1179,12 @@
+ break;
+ }
+
+- if ((frame.tf_eflags & PSL_T) && !(frame.tf_eflags & PSL_VM)) {
++ if (tracedsyscall) {
+ /* Traced syscall. */
+ frame.tf_eflags &= ~PSL_T;
+- trapsignal(p, SIGTRAP, 0);
++ /* tell the signal handler this is a trace trap */
++ frame.tf_trapno = T_TRCTRAP;
++ trapsignal(p, SIGTRAP, T_TRCTRAP);
+ }
+
+ userret(p, &frame, sticks);