sys_proc_elevate

Added sys_proc_elevate to allow for a user mode program to go to supervisor mode.
This commit is contained in:
Peter Weingartner 2022-04-17 14:50:02 -04:00
parent 31258d63d3
commit 0faa96167c
8 changed files with 8862 additions and 8854 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -87,6 +87,7 @@
#define KFN_RUN 0x40 /* Load an execute a binary file */ #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_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_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 */ /* Misc calls */

View file

@ -371,6 +371,9 @@ _syscall:
; TRAP#15 handler... transfer control to the C dispatcher ; TRAP#15 handler... transfer control to the C dispatcher
; ;
h_trap_15: 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 d6,-(sp) ; Push the parameters to the stack for the C call
move.l d5,-(sp) move.l d5,-(sp)
move.l d4,-(sp) move.l d4,-(sp)
@ -386,6 +389,9 @@ h_trap_15:
rte ; Return to the caller 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 ; Jump into a user mode code
; ;

17705
src/mapfile

File diff suppressed because it is too large Load diff

View file

@ -6,7 +6,7 @@
#define __VERSION_H #define __VERSION_H
#define VER_MAJOR 0 #define VER_MAJOR 0
#define VER_MINOR 51 #define VER_MINOR 52
#define VER_BUILD 7 #define VER_BUILD 1
#endif #endif