Add message passed syscall's.
authorEirik Nygaard <eirikn@dragonflybsd.org>
Thu, 12 Aug 2004 19:59:31 +0000 (19:59 +0000)
committerEirik Nygaard <eirikn@dragonflybsd.org>
Thu, 12 Aug 2004 19:59:31 +0000 (19:59 +0000)
commit7062f5b4c5b8eec746572528f80eb6e374d7975e
tree61eb0f515c6271c975b15c374f32a97699f54ca2
parentcbd053b87834d3d0557c6d7a6431b8f8caa55209
Add message passed syscall's.

Split up sendsys2() into two parts, sendsys2() and waitsys2(). sendsys2() will
take care of the synchronous syscall's and initate asynchronous syscall's, and
waitsys2() will wait for a asynchronous syscall to finish.

Asynchronous syscall's can currently only be issued by the root user, but this
limitation will be removed when the code becomes more stable and better tested.

Add userland support for the synchronous and asynchronous sysmsg's to libcr.
Libcr defaults to the use of synchronous sysmsg's now, but this will be changes
as soon as we allow every user to do asynchronous sysmsg's.

Add a limitation to the number of sysmsg's one proc can have running at any
given time. This defaults to unlimited and can be changed with the
kern.max_sysmsg sysctl.
33 files changed:
lib/libcr/Makefile
lib/libcr/i386/SYS.h
lib/libcr/i386/sys/Makefile.inc
lib/libcr/i386/sys/__syscall.S [new file with mode: 0644]
lib/libcr/include/syscall.h [new file with mode: 0644]
lib/libcr/sys/Makefile.inc
lib/libcr/sys/gensyscall.awk [new file with mode: 0644]
sys/cpu/i386/include/segments.h
sys/i386/i386/exception.s
sys/i386/i386/genassym.c
sys/i386/i386/machdep.c
sys/i386/i386/trap.c
sys/i386/include/segments.h
sys/kern/init_sysent.c
sys/kern/kern_sysmsg.c
sys/kern/makesyscalls.sh
sys/kern/syscalls.c
sys/platform/pc32/i386/exception.s
sys/platform/pc32/i386/genassym.c
sys/platform/pc32/i386/machdep.c
sys/platform/pc32/i386/trap.c
sys/platform/vkernel/i386/genassym.c
sys/sys/proc.h
sys/sys/syscall-args [new file with mode: 0644]
sys/sys/syscall-hide.h
sys/sys/syscall.h
sys/sys/syscall.mk
sys/sys/sysmsg.h
sys/sys/sysproto.h
sys/sys/sysunion.h
sys/sys/vmmeter.h
usr.bin/truss/i386.conf
usr.bin/truss/i386linux.conf