Commit Graph

220 Commits

Author SHA1 Message Date
christos
87e24cb708 fix lutimes. 2009-01-11 19:40:38 +00:00
christos
461a86f9bd merge christos-time_t 2009-01-11 02:45:45 +00:00
pooka
3c61b47d93 RUMP some syscalls required by nfsd. 2008-11-26 15:01:17 +00:00
pooka
b5321c4efc document modular. no functional change. 2008-11-21 07:34:46 +00:00
ad
92ce8c6a3d Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
2008-11-19 18:35:57 +00:00
ad
e6a3385171 Make POSIX AIO loadable as a module. 2008-11-14 23:33:45 +00:00
ad
18e73e1ebe Replace semid_t with intptr_t. No function change. This is a libc/kernel
private interface and so the name change should not affect any third
party code.
2008-11-14 15:49:20 +00:00
ad
0b7375c9af Allow the POSIX semaphore code to be loaded as a module. 2008-11-12 14:32:34 +00:00
ad
0efea177e3 Remove LKMs and switch to the module framework, pass 1.
Proposed on tech-kern@.
2008-11-12 12:35:50 +00:00
pooka
e3b0fcf963 One more rump syscall: ioctl (required for interface configuration) 2008-10-16 19:30:49 +00:00
pooka
d31071b90c Mark a few network-related calls as RUMP (needs more work) 2008-10-15 13:01:15 +00:00
wrstuden
fc7511b00e Merge wrstuden-revivesa into HEAD. 2008-10-15 06:51:17 +00:00
pooka
bcfb021366 rumpify sys___sysctl 2008-08-01 19:32:35 +00:00
pooka
b09210ace9 rumpalooza sys_fsync 2008-07-16 15:42:54 +00:00
pooka
21730363f8 Expose utimes() and lutimes() to rump.
from Arnaud Ysmal
2008-07-07 09:01:40 +00:00
pooka
1805817468 Adjust rump syscalls: remove a few pointless ones and add a few
missing ones.
2008-07-01 13:03:08 +00:00
tsutsui
33dfc34006 Include <sys/sched.h> before <sys/syscallargs.h> for cpuset_t. 2008-06-17 16:05:23 +00:00
christos
20d8fbfbe4 typo 2008-06-16 00:54:10 +00:00
christos
5c45905c42 adjust prototypes for the affinity calls. 2008-06-16 00:31:17 +00:00
pooka
de98844194 Mark pread/pwrite rump syscalls.
from Arnaud Ysmal
2008-05-29 12:01:37 +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
ad
a2249ef75c Make ntp, pmc, reboot, sysarch, time syscalls MPSAFE. 2008-04-21 12:56:30 +00:00
ad
d9bace2a92 Acquire kernel_lock directly in LFS syscalls. 2008-04-21 11:45:34 +00:00
ad
08b44dd8b9 timer fixes for PR 37093:
- Fix serious concurrency problems, making the code MT and MP safe in
  the process.
- Don't allocate memory or inspect process state from hardclock().
2008-04-21 00:13:46 +00:00
ad
a19a515177 Put kqueue/kevent back as MPSAFE. 2008-03-27 17:13:25 +00:00
yamt
f725bfefcf after yamt-lazymbuf merge, mark send/recv syscalls MPSAFE.
pointed out by Andrew Doran.
2008-03-24 23:46:43 +00:00
yamt
9a4b7dd279 merge yamt-lazymbuf branch. 2008-03-24 12:24:37 +00:00
ad
f5405b27b2 Unmark kevent/kqueue as MPSAFE. There seems to be some kind of deadlock
involving kernel_lock.
2008-03-22 14:20:09 +00:00
ad
bc370563bc Mark kqueue/kevent MPSAFE. 2008-03-21 21:58:57 +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
martin
a8ed8bb731 Desupport compatibility for the old posix_fadvise syscall per yamt's
request and just ignore it.
2008-02-24 12:52:54 +00:00
ad
653195d46d Mark mount/unmount MPSAFE. PR kern/38034. 2008-02-15 13:09:57 +00:00
yamt
16b042cbdb from rmind@,
- revert struct sched_param changes to restore ABI.
- instead, add 'policy' arguments to _sched_{get,set}param syscalls.
  (this is an API/ABI change.)
- correct kauth_authorize_process arguments.

while i'm here,
- don't bother to kmem_alloc for 4-byte structure.
2008-02-09 16:58:01 +00:00
martin
65badb72df Version the posix_fadvise syscall and add the missing "pad" argument,
so that it does not only work on i386 (no padding) and 64bit archs (all
args padded to 64bit).
2008-01-27 16:13:39 +00:00
ad
baa4a2209f Mark the extattr syscalls MPSAFE. 2008-01-25 13:38:57 +00:00
ad
bbc79e58a6 Pull in my modules code for review/test/hacking. 2008-01-16 12:34:50 +00:00
rmind
5c71a4d49f Implementation of processor-sets, affinity and POSIX real-time extensions.
Add schedctl(8) - a program to control scheduling of processes and threads.

Notes:
- This is supported only by SCHED_M2;
- Migration of LWP mechanism will be revisited;

Proposed on: <tech-kern>. Reviewed by: <ad>.
2008-01-15 03:37:10 +00:00
ad
fe8aceeb5e More MPSAFE syscalls. 2008-01-07 16:15:36 +00:00
ad
b4284a686b Merge vmlocking2 to head. 2008-01-02 11:57:13 +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
ad
b668a9a05f Add _lwp_ctl() system call: provides a bidirectional, per-LWP communication
area between processes and the kernel.
2007-11-12 23:11:58 +00:00
dsl
fb82085e57 Add the 'args' argument to sys_syscall and sys___syscall. 2007-11-09 14:57:33 +00:00
ad
f1c6cfe4f6 Add _lwp_setname, _lwp_getname. Proposed on tech-kern. 2007-11-07 00:37:21 +00:00
rmind
2cecf9bbe9 Implementation of POSIX message queues.
Reviewed by: <ad>, <tech-kern>
2007-09-07 18:56:02 +00:00
ad
df7945cf28 - Update for ktrace changes.
- Mark a few more syscalls MPSAFE.
2007-08-15 12:08:38 +00:00
ad
830ab6bb3c - Fix a bug with _lwp_park() where if the computed wakeup time was under
1 microsecond into the future, the thread could enter an untimed sleep.
- Change the signature of _lwp_park() to accept an lwpid_t and second
  hint pointer, but do so in a way that remains compatible with older
  pthread libraries. This can be used to wake another thread before the
  calling thread goes asleep, saving at least one syscall + involuntary
  context switch. This turns out to be a fairly large win on the condvar
  benchmarks that I have tried.
- Mark some more syscalls MP safe.
2007-08-07 19:00:42 +00:00
ad
b9d8ad095d wait() can't yet be MPSAFE since it's impractical to hold proclist_mutex
across exit(), and so there is a short race against cv_wait_sig(). This
can be reverted when proclist_mutex/proclist_lock merge.
2007-08-07 12:48:30 +00:00
ad
9dab7d5077 gettimeofday() doesn't need locks, and MySQL seems to make heavy use of it. 2007-08-07 09:46:24 +00:00
ad
e4f6da7b0c Mark the SysV semaphore syscalls MP safe. 2007-08-04 10:52:57 +00:00
joerg
e4fc1154a4 Add native mremap system call based on the UVM implementation for
Linux compat. Add code to enforce alignment of the new location.
Special thanks to wizd for helping with the man page.
2007-07-17 17:42:07 +00:00