Syscall messaging 4: Further expand the kernel-version of the syscall message.
The (in-kernel) syscall message is now arranged:
struct blah_args {
sysmsg
usrmsg
... syscall arguments ...
}
Original system calls copyin() just the arguments and then initialize sysmsg
and go. Syscall messages copyin() usrmsg+arguments and then initialize sysmsg
as appropriate and go.
Further detail work for EASYNC support. Implement td_msgport as a reply port
and start working on an async capability for the nanosleep() system call.
NOTE: Preliminary system call messaging can be tested using the suite of
programs in /usr/src/test/sysmsg.
NOTE: Work is still in progress and you can crash the system, so use of
MSGF_ASYNC for messaging system calls is currently restricted to root.
Also fixed a bug in the syscall module helper code in sys/sysent.h, which
might have been causing the linux problems (or might not have).
All system call headers had to be regenerated to deal with the structural
changes.