Syscall messaging 4: Further expand the kernel-version of the syscall message.
authorMatthew Dillon <dillon@dragonflybsd.org>
Tue, 12 Aug 2003 02:36:15 +0000 (02:36 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Tue, 12 Aug 2003 02:36:15 +0000 (02:36 +0000)
commit245e4f1762691b0acb74e169228f54b3f108f33e
treec5a6de695058d5d4f58b2957a02d574b52714df1
parent6b055cd499299322d39c77d6c049d19c86e0f99b
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.
36 files changed:
sys/emulation/ibcs2/i386/ibcs2_isc_syscall.h
sys/emulation/ibcs2/i386/ibcs2_isc_sysent.c
sys/emulation/ibcs2/i386/ibcs2_proto.h
sys/emulation/ibcs2/i386/ibcs2_syscall.h
sys/emulation/ibcs2/i386/ibcs2_sysent.c
sys/emulation/ibcs2/i386/ibcs2_union.h
sys/emulation/ibcs2/i386/ibcs2_xenix.h
sys/emulation/ibcs2/i386/ibcs2_xenix_syscall.h
sys/emulation/ibcs2/i386/ibcs2_xenix_sysent.c
sys/emulation/linux/i386/linux_proto.h
sys/emulation/linux/i386/linux_syscall.h
sys/emulation/linux/i386/linux_sysent.c
sys/emulation/linux/i386/linux_union.h
sys/emulation/svr4/svr4_proto.h
sys/emulation/svr4/svr4_syscall.h
sys/emulation/svr4/svr4_syscallnames.c
sys/emulation/svr4/svr4_sysent.c
sys/emulation/svr4/svr4_union.h
sys/i386/i386/trap.c
sys/kern/init_sysent.c
sys/kern/kern_device.c
sys/kern/kern_time.c
sys/kern/lwkt_msgport.c
sys/kern/makesyscalls.sh
sys/kern/syscalls.c
sys/platform/pc32/i386/trap.c
sys/sys/globaldata.h
sys/sys/msgport.h
sys/sys/msgport2.h
sys/sys/syscall-hide.h
sys/sys/syscall.h
sys/sys/syscall.mk
sys/sys/sysent.h
sys/sys/sysmsg.h
sys/sys/sysproto.h
sys/sys/sysunion.h