- Add support for the ucontext system calls (getcontext, setcontext,
swapcontext, and makecontext). - Fix VM to not erroneously think the stack segment and data segment have collided when a user-space thread invokes brk(). - Add test51 to test ucontext functionality. - Add man pages for ucontext system calls.
This commit is contained in:
@@ -56,6 +56,8 @@
|
||||
#define ITIMER 64
|
||||
#define GETGROUPS 65
|
||||
#define SETGROUPS 66
|
||||
#define GETMCONTEXT 67
|
||||
#define SETMCONTEXT 68
|
||||
|
||||
/* Posix signal handling. */
|
||||
#define SIGACTION 71
|
||||
|
||||
+5
-2
@@ -355,8 +355,10 @@
|
||||
# define SYS_SAFEMAP (KERNEL_CALL + 47) /* sys_safemap() */
|
||||
# define SYS_SAFEREVMAP (KERNEL_CALL + 48) /* sys_saferevmap() sys_saferevmap2() */
|
||||
# define SYS_SAFEUNMAP (KERNEL_CALL + 49) /* sys_safeunmap() */
|
||||
# define SYS_GETMCONTEXT (KERNEL_CALL + 50) /* sys_getmcontext() */
|
||||
# define SYS_SETMCONTEXT (KERNEL_CALL + 51) /* sys_setmcontext() */
|
||||
|
||||
#define NR_SYS_CALLS 50 /* number of system calls */
|
||||
#define NR_SYS_CALLS 52 /* number of system calls */
|
||||
#define SYS_CALL_MASK_SIZE BITMAP_CHUNKS(NR_SYS_CALLS)
|
||||
|
||||
/* Field names for SYS_MEMSET. */
|
||||
@@ -510,7 +512,7 @@
|
||||
#define SIG_MAP m2_l1 /* used by kernel to pass signal bit map */
|
||||
#define SIG_CTXT_PTR m2_p1 /* pointer to info to restore signal context */
|
||||
|
||||
/* Field names for SYS_FORK, _EXEC, _EXIT, _NEWMAP. */
|
||||
/* Field names for SYS_FORK, _EXEC, _EXIT, _NEWMAP, GETMCONTEXT, SETMCONTEXT.*/
|
||||
#define PR_ENDPT m1_i1 /* indicates a process */
|
||||
#define PR_PRIORITY m1_i2 /* process priority */
|
||||
#define PR_SLOT m1_i2 /* indicates a process slot */
|
||||
@@ -522,6 +524,7 @@
|
||||
*/
|
||||
#define PR_FORK_FLAGS m1_i3 /* optional flags for fork operation */
|
||||
#define PR_FORK_MSGADDR m1_p1 /* reply message address of forked child */
|
||||
#define PR_CTX_PTR m1_p1 /* pointer to mcontext_t structure */
|
||||
|
||||
/* Flags for PR_FORK_FLAGS. */
|
||||
#define PFF_VMINHIBIT 0x01 /* Don't schedule until release by VM. */
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
#include <minix/safecopies.h>
|
||||
#include <minix/sef.h>
|
||||
#include <machine/mcontext.h>
|
||||
|
||||
/* Forward declaration */
|
||||
struct reg86u;
|
||||
@@ -250,5 +251,9 @@ _PROTOTYPE( int sys_cprof, (int action, int size, endpoint_t endpt,
|
||||
void *ctl_ptr, void *mem_ptr) );
|
||||
_PROTOTYPE( int sys_profbuf, (void *ctl_ptr, void *mem_ptr) );
|
||||
|
||||
/* machine context */
|
||||
_PROTOTYPE( int sys_getmcontext, (endpoint_t proc, mcontext_t *mcp) );
|
||||
_PROTOTYPE( int sys_setmcontext, (endpoint_t proc, mcontext_t *mcp) );
|
||||
|
||||
#endif /* _SYSLIB_H */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user