sys_proc_elevate
Added sys_proc_elevate to allow for a user mode program to go to supervisor mode.
This commit is contained in:
parent
31258d63d3
commit
0faa96167c
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -87,6 +87,7 @@
|
|||
#define KFN_RUN 0x40 /* Load an execute a binary file */
|
||||
#define KFN_MEM_GET_RAMTOP 0x41 /* Get the upper limit of the top of system RAM */
|
||||
#define KFN_MEM_RESERVE 0x42 /* Reserve a block of memory at the top of system RAM */
|
||||
#define KFN_ELEVATE 0x43 /* Switch the user process to a full privilege */
|
||||
|
||||
/* Misc calls */
|
||||
|
||||
|
|
|
@ -371,6 +371,9 @@ _syscall:
|
|||
; TRAP#15 handler... transfer control to the C dispatcher
|
||||
;
|
||||
h_trap_15:
|
||||
cmp.w #$43,d1 ; Is this a sys_proc_elevate call?
|
||||
beq h_trap_elev ; Yes, just handle it here
|
||||
|
||||
move.l d6,-(sp) ; Push the parameters to the stack for the C call
|
||||
move.l d5,-(sp)
|
||||
move.l d4,-(sp)
|
||||
|
@ -386,6 +389,9 @@ h_trap_15:
|
|||
|
||||
rte ; Return to the caller
|
||||
|
||||
h_trap_elev ori #$2000,(a7) ; Change the caller's privilege to supervisor
|
||||
rte ; And return to it
|
||||
|
||||
;
|
||||
; Jump into a user mode code
|
||||
;
|
||||
|
|
17705
src/mapfile
17705
src/mapfile
File diff suppressed because it is too large
Load diff
|
@ -6,7 +6,7 @@
|
|||
#define __VERSION_H
|
||||
|
||||
#define VER_MAJOR 0
|
||||
#define VER_MINOR 51
|
||||
#define VER_BUILD 7
|
||||
#define VER_MINOR 52
|
||||
#define VER_BUILD 1
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue