- 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:
Thomas Veerman
2010-03-12 15:58:41 +00:00
parent 3efbb8f133
commit bef0e3eb63
33 changed files with 1232 additions and 19 deletions

View File

@@ -8,7 +8,7 @@ INCS= asynchio.h dir.h file.h ioc_cmos.h ioc_disk.h \
mount.h mtio.h param.h ptrace.h queue.h resource.h \
select.h sem.h shm.h sigcontext.h signal.h socket.h \
soundcard.h statfs.h stat.h svrctl.h timeb.h \
time.h times.h types.h uio.h un.h utsname.h video.h vm.h \
time.h times.h types.h ucontext.h uio.h un.h utsname.h video.h vm.h \
wait.h
.include <minix.kinc.mk>

22
include/sys/ucontext.h Normal file
View File

@@ -0,0 +1,22 @@
#ifndef _SYS_UCONTEXT_H
#define _SYS_UCONTEXT_H 1
#include <signal.h>
#include <machine/mcontext.h>
#define NCARGS 6
#define UCF_SWAPPED 001 /* Context has been swapped in by swapcontext(3) */
#define UCF_IGNFPU 002 /* Ignore FPU context by get or setcontext(3) */
#define UCF_IGNSIGM 004 /* Ignore signal mask by get or setcontext(3) */
typedef struct __ucontext ucontext_t;
struct __ucontext {
unsigned int uc_flags; /* Properties of ucontext */
ucontext_t *uc_link; /* Next context to resume when current is finished */
mcontext_t uc_mcontext; /* Machine state */
sigset_t uc_sigmask; /* Signals blocked in this context */
stack_t uc_stack; /* The stack used by this context */
};
#endif /* _SYS_UCONTEXT_H */