Commit Graph

108 Commits

Author SHA1 Message Date
pooka 2f7b77901e Include system call name in comment even for unimplemented syscalls
in rump_syscalls.c.
2010-12-30 20:09:53 +00:00
pooka afe2ca27dd Mark syscalls not supported by a rump kernel with SYCALL_NOSYS, as
pure function pointer comparison brings weak alias confusion (weak
aliases are necessary for static linkage).
2010-12-30 16:49:24 +00:00
pooka cb92cf6235 whitespace polish in rump_syscalls.c 2010-12-30 13:38:10 +00:00
pooka 8b73c28f1c snafu in previous: extra printf arg 2010-12-30 11:54:50 +00:00
pooka c86a7bcf7c Fill syscallnames up to nsysent so that n<nsysent has a non-hyperspace
string mapping.
2010-12-30 11:42:53 +00:00
pooka b991c38551 Skip one extra function in the rump syscall local path and use
sy_call() directly from rump_syscalls.c.
2010-11-17 21:47:11 +00:00
pooka c099830b29 Create rump_syscalls.c in two flavours: one which can be compiled
standalone as the clientside and one which expects to be compiled
into the rump kernel.
2010-11-04 20:50:29 +00:00
pooka 3c0f9a592b apply "shut up, lint" for syscallargs.h 2010-11-04 17:02:34 +00:00
pooka 8553c5887b Align comment column in output, no functional change. 2010-11-01 16:21:29 +00:00
pooka 5c6beee9f6 Use the generally more useful funcalias for rump syscalls. 2010-08-30 10:24:04 +00:00
pooka 7f9f73897e Include <rump/rump_syscalls_compat.h> from rump_syscalls.h. This
file will contain compat defs which are not autogenerated.
2010-07-19 15:25:47 +00:00
njoly a00a76ca8d Add multiple inclusion protection to rump_syscalls.h. 2010-05-17 12:35:20 +00:00
pooka 14d288df20 _RUMPKERNEL -> _KERNEL 2010-05-11 20:09:11 +00:00
pooka 6ec71a1c75 Use sys_nomodule for modular rump system calls so that they can be
autoloaded.
2010-04-27 10:57:46 +00:00
pooka e867c34ab2 Make is possible to add extra output at the top of syscallargs.h.
Use this feature to stick sys/mount.h in there.
2010-03-02 19:33:12 +00:00
skrll e359b65038 Check for dev_t and time_t arguments and mark them as 64bit. 2010-01-05 15:23:32 +00:00
matt dfa7467a6e Pullup from matt-nb5-mips64.
For each syscall, add a flag for the return value or an argument indicating
that it is a 64-bit argument.  Also include the number of 64-bit arguments.
In theory this could get most of the code in compat/netbsd32/netbsd32_netbsd.c
but not at the moment due to multiply defined structures.
2009-12-13 04:47:45 +00:00
pooka baffc0cbae typo in comment (it actually breaks the script totally. i wish
more typos in comments were as effective)
2009-11-26 17:23:48 +00:00
pooka 67ff6315cd Add rump support for the special handling required by pipe(2). 2009-11-26 17:19:54 +00:00
pooka a91020162b Instead of a single register_t as the retval of rump syscalls,
use an array of two.  No functional change ... yet.
2009-11-26 16:34:24 +00:00
pooka 0d8bdf6131 For varargs syscalls, create rump prototypes which match the regular
system call counterparts, e.g.:
open(const char *, int, mode_t) -> open(const char *, int, ...)
2009-10-13 21:54:29 +00:00
pooka 6c68c84345 Use argname PAD to signal that an argument is used only for padding
and not part of the C interface.  Use this information for rump
syscalls to generate syscall interfaces without the extra parameter.
2009-05-15 15:51:27 +00:00
pooka 500fdd36a7 In addition to off_t alignment, check for dev_t and time_t too
(we don't currently have any syscalls passing time_t, though)
2009-05-15 14:52:47 +00:00
pooka 2941a7af6e Include some headers to make rump_syscalls.h self-contained.
(not strictly correct wrt portability, but there are bigger fish
to saltgrill in that area)
2009-03-29 07:56:19 +00:00
pooka 0ef29cbdba Rename rump argument marshalling structure variable to "callarg" to
avoid collision with system calls which use "arg".
2009-03-18 17:27:04 +00:00
pooka b50bd8632e Instead of linking rump system call entry points directly to the
backend, perform all calls through a syscall table.  This makes it
possible to make system calls to non-local rump kernels.
(requires a bit support code.  it's written but quite messy currently)
2009-02-20 17:56:36 +00:00
pooka 3e656734b8 cosmetic: don't print empty line at end of init_sysent.c 2009-02-14 16:21:23 +00:00
pooka 06abc8c3f9 Remove debug print -- this is what happens when there's several
hours between implementation and commit.
2009-01-23 19:29:38 +00:00
pooka c7e5a8be4e Remove the "int *error" parameter from rump syscalls. Instead use
rumpuser_seterrno() to set the errno for the caller.  This makes
the difference between real and rump syscalls way less intrusive
in calling code.
2009-01-23 19:27:18 +00:00
pooka 32713ca49c Generate local prototypes in rump_syscalls.c and disallow using
the rump_syscalls.h interface from inside the rump kernel.
2009-01-14 19:40:30 +00:00
pooka a9a2ce837b Convert the syscalls.master to a format from which it is easier
to parse and generate the compat name and basename (e.g. __stat50
and stat).  Use this to autogenerate __RENAME()'s to the rump_syscalls
header so that they can be called e.g. rump_sys_socket() instead
of rump_sys___socket30().
2009-01-13 22:27:43 +00:00
pooka 71ef2103a7 Print delimiters around expected string in parse error message. 2009-01-13 16:29:19 +00:00
pooka b2acbf4328 fix error message: expecting (, not ) 2009-01-13 16:25:43 +00:00
pooka 786ff94e12 <rump/rump_syscalls.h>, not "rump_syscalls.h" 2008-11-16 18:40:13 +00:00
ad 119366618e Atomic insertion/removal of groups of system call vectors at runtime with
a basic facility for rollback.

Proposed on tech-kern@.
2008-11-12 14:29:31 +00:00
pooka 3a64aae825 Fix previous: weak symbols work so much better if they are exported
from the object as weak symbols...

There's also something to be said about "cosmetic" tweaks after
testing, but I do think I'll bother.
2008-10-13 18:16:33 +00:00
pooka cf05fbf706 Weak alias all rump system calls to rump_enosys() 2008-10-13 16:25:12 +00:00
pooka 23bef54996 For rumpsyscalls, properly return -1 in case of error. 2008-09-07 19:27:58 +00:00
apb 7cb9e72bbb Avoid using \$ in an awk script. Instead, store '$NetBSD$'
in an awk variable and interpolate it where needed.

Based on the patch by Martin Husemann in PR 38766.
2008-07-23 21:17:25 +00:00
ad 30abe39468 - Retire SYCALL_MPSAFE. With the exceptions of darwin and irix emulations,
all system calls are now MPSAFE.
- Remove unneeded acquire/release of kernel_lock.
2008-04-24 11:51:18 +00:00
christos 4897e6c085 bring some stuff from time_t=64...
- add sysalign parameter to syscalls.conf
- add compat_50
2008-03-22 15:11:01 +00:00
njoly d5bb355fe9 Handle rumpcalls/rumpcallshdr differently by always defining a default
value, which can be overwritten with syscalls.conf defines (just like
sys_nosys).

This fix a problem where rump awk variables are set to 0 value,
leading to the creation of an unexpected file with that name.

ok by pooka.
2008-03-18 12:36:15 +00:00
pooka f2976c3905 Generate syscalls entry points which can be called directly without
going through a syscall trap.  These are currently useful for rumps.
As all the standard syscalls are not compiled into librump, mark
relevant ones with RUMP in syscalls.master.  To do e.g. a mkdir
"system call" from a rump, one would call

  rump_sys_mkdir("/dir", mode, &eval);

where the last value represents something to store errno into.
2008-03-11 22:50:10 +00:00
njoly fcf1e44d76 Do not hardcode sys_stub to the string "sys_nosys" for the not ignored
case. Just use the corresponding variable instead, to allow emulation
to use their own defined value.
2008-03-10 14:06:46 +00:00
martin a032b8dad3 Add a new syscall type IGNORED which just calls nullop (always succeeds
and does nothing).
2008-02-24 12:51:42 +00:00
yamt 80d10710d5 check off_t alignment. 2008-01-28 10:31:37 +00:00
dsl 7e2790cf6f Convert all the system call entry points from:
int foo(struct lwp *l, void *v, register_t *retval)
to:
    int foo(struct lwp *l, const struct foo_args *uap, register_t *retval)
Fixup compat code to not write into 'uap' and (in some cases) to actually
pass a correctly formatted 'uap' structure with the right name to the
next routine.
A few 'compat' routines that just call standard ones have been deleted.
All the 'compat' code compiles (along with the kernels required to test
build it).
98% done by automated scripts.
2007-12-20 23:02:38 +00:00
dsl 84e8b2869e Support "NOARGS INDIR" for compat_mach. 2007-11-10 13:22:11 +00:00
dsl f4311cf9b6 Generate normal prototypes (etc) for INDIR calls (sys_syscall and sys___syscall)
just flag the entries as SYCALL_INDIRECT.
2007-11-09 14:54:13 +00:00
christos 3b5b073fd2 protect sys/syscall.h properly against multiple inclusion and make the
names of the protection macros consistent.
2005-12-03 17:04:36 +00:00