Message type for SYS_ABORT
Change-Id: Ic24a4779cc7955cb94f81fec58a358057ca85cb1
This commit is contained in:
parent
b3085e334c
commit
e412a58209
4 changed files with 11 additions and 6 deletions
|
@ -310,9 +310,6 @@
|
||||||
# define IRQ_WORD 0x200 /* word values */
|
# define IRQ_WORD 0x200 /* word values */
|
||||||
# define IRQ_LONG 0x400 /* long values */
|
# define IRQ_LONG 0x400 /* long values */
|
||||||
|
|
||||||
/* Field names for SYS_ABORT. */
|
|
||||||
#define ABRT_HOW m1_i1 /* RBT_REBOOT, RBT_HALT, etc. */
|
|
||||||
|
|
||||||
/* Field names for SYS_IOPENABLE. */
|
/* Field names for SYS_IOPENABLE. */
|
||||||
#define IOP_ENDPT m2_l1 /* target endpoint */
|
#define IOP_ENDPT m2_l1 /* target endpoint */
|
||||||
|
|
||||||
|
|
|
@ -700,6 +700,13 @@ typedef struct {
|
||||||
} mess_lsys_krn_schedctl;
|
} mess_lsys_krn_schedctl;
|
||||||
_ASSERT_MSG_SIZE(mess_lsys_krn_schedctl);
|
_ASSERT_MSG_SIZE(mess_lsys_krn_schedctl);
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int how;
|
||||||
|
|
||||||
|
uint8_t padding[52];
|
||||||
|
} mess_lsys_krn_sys_abort;
|
||||||
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_abort);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int request;
|
int request;
|
||||||
int vector;
|
int vector;
|
||||||
|
@ -1481,6 +1488,7 @@ typedef struct {
|
||||||
|
|
||||||
mess_lsys_krn_schedctl m_lsys_krn_schedctl;
|
mess_lsys_krn_schedctl m_lsys_krn_schedctl;
|
||||||
mess_lsys_krn_schedule m_lsys_krn_schedule;
|
mess_lsys_krn_schedule m_lsys_krn_schedule;
|
||||||
|
mess_lsys_krn_sys_abort m_lsys_krn_sys_abort;
|
||||||
mess_lsys_krn_sys_irqctl m_lsys_krn_sys_irqctl;
|
mess_lsys_krn_sys_irqctl m_lsys_krn_sys_irqctl;
|
||||||
mess_lsys_krn_sys_memset m_lsys_krn_sys_memset;
|
mess_lsys_krn_sys_memset m_lsys_krn_sys_memset;
|
||||||
mess_lsys_krn_sys_sdevio m_lsys_krn_sys_sdevio;
|
mess_lsys_krn_sys_sdevio m_lsys_krn_sys_sdevio;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* m_type: SYS_ABORT
|
* m_type: SYS_ABORT
|
||||||
*
|
*
|
||||||
* The parameters for this kernel call are:
|
* The parameters for this kernel call are:
|
||||||
* m1_i1: ABRT_HOW (how to abort, possibly fetch monitor params)
|
* m_lsys_krn_sys_abort.how (how to abort, possibly fetch monitor params)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "kernel/system.h"
|
#include "kernel/system.h"
|
||||||
|
@ -18,7 +18,7 @@ int do_abort(struct proc * caller, message * m_ptr)
|
||||||
/* Handle sys_abort. MINIX is unable to continue. This can originate e.g.
|
/* Handle sys_abort. MINIX is unable to continue. This can originate e.g.
|
||||||
* in the PM (normal abort) or TTY (after CTRL-ALT-DEL).
|
* in the PM (normal abort) or TTY (after CTRL-ALT-DEL).
|
||||||
*/
|
*/
|
||||||
int how = m_ptr->ABRT_HOW;
|
int how = m_ptr->m_lsys_krn_sys_abort.how;
|
||||||
|
|
||||||
/* Now prepare to shutdown MINIX. */
|
/* Now prepare to shutdown MINIX. */
|
||||||
prepare_shutdown(how);
|
prepare_shutdown(how);
|
||||||
|
|
|
@ -8,6 +8,6 @@ int sys_abort(int how)
|
||||||
|
|
||||||
message m;
|
message m;
|
||||||
|
|
||||||
m.ABRT_HOW = how;
|
m.m_lsys_krn_sys_abort.how = how;
|
||||||
return(_kernel_call(SYS_ABORT, &m));
|
return(_kernel_call(SYS_ABORT, &m));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue