about summary refs log tree commit diff
path: root/hurd/hurdfault.c
diff options
context:
space:
mode:
Diffstat (limited to 'hurd/hurdfault.c')
-rw-r--r--hurd/hurdfault.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/hurd/hurdfault.c b/hurd/hurdfault.c
index bb6fa9576d..a8fe8fb07f 100644
--- a/hurd/hurdfault.c
+++ b/hurd/hurdfault.c
@@ -42,19 +42,21 @@ _hurdsig_fault_catch_exception_raise (mach_port_t port,
 				      int subcode)
 {
   int signo;
-  long int sigcode;
-  int sigerror;
+  struct hurd_signal_detail d;
 
   if (port != forward_sigexc ||
       thread != _hurd_msgport_thread || task != __mach_task_self ())
     return EPERM;		/* Strange bogosity.  */
 
+  d.exc = exception;
+  d.exc_code = code;
+  d.exc_subcode = subcode;
+
   /* Call the machine-dependent function to translate the Mach exception
      codes into a signal number and subcode.  */
-  _hurd_exception2signal (exception, code, subcode,
-			  &signo, &sigcode, &sigerror);
+  _hurd_exception2signal (&d, &signo);
 
-  return HURD_PREEMPT_SIGNAL_P (&_hurdsig_fault_preempter, signo, sigcode)
+  return HURD_PREEMPT_SIGNAL_P (&_hurdsig_fault_preempter, signo, d.code)
     ? 0 : EGREGIOUS;
 }