aboutsummaryrefslogtreecommitdiff
path: root/hurd/catch-exc.c
diff options
context:
space:
mode:
Diffstat (limited to 'hurd/catch-exc.c')
-rw-r--r--hurd/catch-exc.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/hurd/catch-exc.c b/hurd/catch-exc.c
index 8ab38a2..e3186eb 100644
--- a/hurd/catch-exc.c
+++ b/hurd/catch-exc.c
@@ -29,18 +29,21 @@ _S_catch_exception_raise (mach_port_t port,
int code,
int subcode)
{
- int signo, error;
- long int sigcode;
struct hurd_sigstate *ss;
+ int signo;
+ struct hurd_signal_detail d;
if (task != __mach_task_self ())
/* The sender wasn't the kernel. */
return EPERM;
+ 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, &error);
+ _hurd_exception2signal (&d, &signo);
/* Find the sigstate structure for the faulting thread. */
__mutex_lock (&_hurd_siglock);
@@ -70,7 +73,7 @@ _S_catch_exception_raise (mach_port_t port,
}
/* Post the signal. */
- _hurd_internal_post_signal (ss, signo, sigcode, error,
+ _hurd_internal_post_signal (ss, signo, &d,
MACH_PORT_NULL, MACH_MSG_TYPE_PORT_SEND,
0);