NetBSD/sys
pooka 53c9307857 Rework how syscall compat is handled for rump syscalls. The old
one had the problem of bypassing the syscall layer and doing a
function call into the kernel directly.  Therefore there was no
way for users of librumpclient to specify compat.  The new model
pushes the compat handling in the kernel and leaves only the task
of selecting the right syscall number to the client.

This change also introduces a stable ABI for rump syscalls, i.e.
it is possible to use the same syscall client library both on NetBSD
5.0 and -current and get the syscalls resolved to the right place
depending on the ABI at the time the client binary is compiled.

A list of what to be called when will have to maintained separately
simply because this information is not available in syscalls.master
-- in the case of the normal kernel we always want to resolve a
newly linked syscall to the latest version, whereas in rump we
might want to resolve a syscall to a -current kernel to the 5.0
compat call (because our client namespace is 5.0).  This information
in maintained in rump_syscalls_compat.h with the current format:

/* time_t change */
#if !__NetBSD_Prereq__(5,99,7)
#define RUMP_SYS_RENAME_STAT rump___sysimpl_stat30
....

If no compat override is given, a syscall resolves automatically
to the latest version of the syscall.

Also, this change autogenerates forward declarations for all syscall
types where it is possible (i.e. ones without typedef insanity).
This makes it possible to include rump_syscalls.h without including
rump.h.
2011-01-17 16:16:54 +00:00
..
altq
arch add acpiwdrt 2011-01-17 15:56:03 +00:00
coda
common/bus_dma
compat Put async i/o compat routines in a separate source module from the 2011-01-17 15:57:04 +00:00
conf
crypto
ddb Retire struct user, remove sys/user.h inclusions. Note sys/user.h header 2011-01-14 02:06:22 +00:00
dev acpiwdrt needs sysmon_wdog 2011-01-17 15:55:24 +00:00
dist
external
fs Metadata partition (v2.50+) bugfix commit : 2011-01-14 09:09:18 +00:00
gdbscripts
ipkdb
kern Rework how syscall compat is handled for rump syscalls. The old 2011-01-17 16:16:54 +00:00
lib Kill _NOREGNAMES. Everything should be using %rX now. If it doesn't it 2011-01-17 08:23:53 +00:00
miscfs Layer_revoke(): change previous to always take an extra reference on the 2011-01-13 10:28:38 +00:00
modules Put async i/o compat routines in a separate source module from the 2011-01-17 15:57:04 +00:00
net
net80211
netatalk
netbt
netinet
netinet6
netipsec
netisdn
netiso
netkey
netmpls
netnatm
netsmb
nfs
opencrypto
rump Support SIGMODEL_RAISE for non-local clients. 2011-01-14 13:11:08 +00:00
secmodel
stand
sys Retire struct user, remove sys/user.h inclusions. Note sys/user.h header 2011-01-14 02:06:22 +00:00
ufs
uvm Retire struct user, remove sys/user.h inclusions. Note sys/user.h header 2011-01-14 02:06:22 +00:00
Makefile