1 |
; Exception interface. -*-Scheme-*- |
; Exception interface -*-Scheme-*- |
2 |
; Copyright 1999-2002 Johan Rydberg, jrydberg@rtmk.org. |
; Copyright 1999, 2000, 2001, 2002 Johan Rydberg, jrydberg@rtmk.org. |
3 |
; |
; |
4 |
; This program is free software; you can redistribute it and/or modify |
; This program is free software; you can redistribute it and/or modify |
5 |
; it under the terms of the GNU General Public License as published by |
; it under the terms of the GNU General Public License as published by |
15 |
; along with this program; if not, write to the Free Software |
; along with this program; if not, write to the Free Software |
16 |
; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
17 |
|
|
18 |
#include <rtmk/std-types.defs> |
(define-interface exception 200 |
19 |
|
|
20 |
(dni "exception" "kernel exception interface" 200) |
; Raise exception in THREAD, belonging to TASK. |
21 |
|
(define-method exception_raise (returns RTMK_MSG_TYPE_INTEGER32) |
22 |
; Raise exception in THREAD, belonging to TASK. |
(arguments (out exc_port RTMK_MSG_TYPE_COPY_SEND) |
23 |
(define-routine exception-raise |
(out thread RTMK_MSG_TYPE_COPY_SEND) |
24 |
(c-name "exception_raise") |
(out task RTMK_MSG_TYPE_COPY_SEND) |
25 |
(comment "raise exception EXCEPTION") |
(out exception RTMK_MSG_TYPE_INTEGER32) |
26 |
() ; no attrs |
(out code RTMK_MSG_TYPE_INTEGER32) |
27 |
(return-type kern-return-t) |
(out subcode RTMK_MSG_TYPE_INTEGER32) |
28 |
(arguments ((exc-port "exc_port" rtmk-port-t) |
(out state RTMK_MSG_TYPE_INTEGER8[])) |
29 |
(thread "thread" rtmk-port-t) |
) |
|
(task "task" rtmk-port-t) |
|
|
(exception "exception" int) |
|
|
(code "code" int) |
|
|
(subcode "subcode" int) |
|
|
(state "state" thread-state-t))) |
|
30 |
) |
) |
31 |
|
|