Commit Graph

1408 Commits

Author SHA1 Message Date
tron
14cc7c79c1 Regen. 1999-08-16 19:13:29 +00:00
tron
327a8cdf75 Add stime() to syscalls table. 1999-08-16 19:13:01 +00:00
tron
c3ea560498 Add emulation for Linux stime(2) required for MuPAD's X11 interface. 1999-08-16 19:06:29 +00:00
simonb
299578ebd5 Spell "privilege" correctly (correct spelling from Jonathan Stone). 1999-08-16 02:59:22 +00:00
thorpej
eb20bbc780 Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied.  Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX.  This platforms still have this bug until their
XXX spl*() functions are fixed.
1999-08-05 18:08:08 +00:00
wrstuden
3bf14d81e9 Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl
call with F_FSCTL set and F_SETFL calls generate calls to a new
fileop fo_fcntl. Add genfs_fcntl() and soo_fcntl() which return 0
for F_SETFL and EOPNOTSUPP otherwise. Have all leaf filesystems
use genfs_fcntl().

Reviewed by: thorpej
Tested by: wrstuden
1999-08-03 20:19:16 +00:00
christos
2f73c9bc1d sparc is not defined anymore... Use __sparc__ and __i386__. Also default
to the standard elf NOADDR...
1999-08-01 23:55:40 +00:00
drochner
44b56d917e regen 1999-07-30 16:04:41 +00:00
drochner
287f2ffe69 emulate fcntl(F_SETLK) & Co.
(seti@home works now:-)
1999-07-30 16:03:49 +00:00
rh
cfa2c0bd79 Remove superfluous NULL argument from proclist_lock_read() call. 1999-07-25 08:55:46 +00:00
thorpej
01a8cffe77 Add a read/write lock to the proclists and PID hash table. Use the
write lock when doing PID allocation, and during the process exit path.
Use a read lock every where else, including within schedcpu() (interrupt
context).  Note that holding the write lock implies blocking schedcpu()
from running (blocks softclock).

PID allocation is now MP-safe.

Note this actually fixes a bug on single processor systems that was probably
extremely difficult to tickle; it was possible that schedcpu() would run
off a bad pointer if the right clock interrupt happened to come in the
middle of a LIST_INSERT_HEAD() or LIST_REMOVE() to/from allproc.
1999-07-22 21:08:30 +00:00
thorpej
32e1fd0d03 Move the call of cpu_wait() out of the wait4() functions, and into the
body of reaper(), right before the call to uvm_exit().  cpu_wait() must
be done before uvm_exit() because the resources it frees might be located
in the PCB.
1999-07-20 21:54:05 +00:00
jtk
92bf84ec68 implement emulation of SIOCGIFHWADDR, PR 7997 1999-07-17 22:03:55 +00:00
jtk
c13299119a add LINUX_SIOCGIFHWADDR 1999-07-17 21:46:28 +00:00
thorpej
c581bf97c5 A few things to make the Linux clone(2) emulation work a bit better:
- When the exit signal is specified to be 0, don't just assume they
  meant SIGCHLD.  In the Linux world, this appears to mean "don't deliver
  an exit signal at all".
- Simplify P_EXITSIG(); don't check against initproc here, just change
  the exit signal to SIGCHLD if reparenting to initproc.

A very simple clone(2) test program now works, and the MpegTV package
starts, but doesn't run properly yet (I believe there is a separate
bug which keeps it from working properly).
1999-07-15 23:18:41 +00:00
kleink
dfa5aad003 Regen. 1999-07-12 22:04:00 +00:00
kleink
e79a283e47 XSH5: change function signature to `void *sbrk(intptr_t)'. 1999-07-12 21:55:19 +00:00
cgd
2055d9d08d emulate (parts of) flock 1999-06-26 01:24:41 +00:00
cgd
1e29f2fb1f convert flock struct 1999-06-26 01:23:23 +00:00
cgd
b9c997eba9 flock struct and related constants and types 1999-06-26 01:21:30 +00:00
thorpej
12347b2657 Make uvm_vslock() return the error code from uvm_fault_wire(). All places
which use uvm_vslock() should now test the return value.  If it's not
KERN_SUCCESS, wiring the pages failed, so the operation which is using
uvm_vslock() should error out.

XXX We currently just EFAULT a failed uvm_vslock().  We may want to do
more about translating error codes in the future.
1999-06-17 15:47:22 +00:00
oster
f4628e2fda FILE_UNUSE needs two args, not one. 1999-06-13 21:34:32 +00:00
drochner
6e2b65ec1d regen 1999-06-09 12:38:50 +00:00
drochner
b4e4c530db add "sys_" prefix to LFS syscalls 1999-06-09 12:33:18 +00:00
christos
354ba222e6 Regen 1999-06-09 04:50:32 +00:00
christos
b7a0cd53a2 Propagate kern changes 1999-06-09 04:50:10 +00:00
christos
4ebea99d8e Regen 1999-06-09 04:28:24 +00:00
christos
1e6c35821b propagate changes from kern 1999-06-09 04:27:44 +00:00
cgd
3da80f5ebd don't vrele a bogus pointer if the namei() of the loader fails 1999-05-28 04:39:14 +00:00
pk
bd84136493 copyinst() takes a `size_t *'. 1999-05-27 14:03:05 +00:00
tron
c0567a6bc7 Add support for SETALL and GETALL to the Linux emulation of semctl()
and improve handling of SETVAL. Patches supplied by YAMAMOTO Jiro in
PR kern/7621.
1999-05-27 13:30:40 +00:00
thorpej
497248ca55 XXX Pass VM_PROT_NONE to uvm_vslock() as access_type. Why are we even
vslocking here?!  copyout() on its own seems to suffice just about everwhere
else, and it's not like the process is going to exit; it's in a system
call!
1999-05-26 01:07:06 +00:00
thorpej
a2dc12021c Oops, completely forgot to translate the exit signal in clone(2). 1999-05-17 19:26:33 +00:00
thorpej
0f74e48ca5 Emulate the Linux {get,set}resgid(2) system calls. 1999-05-14 18:45:31 +00:00
thorpej
8a61761cc5 Emulate the Linux {get,set}resuid(2) system calls. 1999-05-14 18:44:50 +00:00
thorpej
dd623ce325 Regen. 1999-05-14 18:44:15 +00:00
thorpej
a03622b33f Emulate the Linux vfork(2) (which is like NetBSD's __vfork14(2)),
{get,set}resuid(2), and {get,set}resgid(2).  Note a few more system
calls that we don't yet emulate.
1999-05-14 18:43:58 +00:00
thorpej
5f1b28961e Regen. 1999-05-14 18:43:20 +00:00
thorpej
e0a6808cef Emulate the Linux vfork(2) (which is like NetBSD's __vfork14(2)),
{get,set}resuid(2), and {get,set}resgid(2).  Note a few more system
calls that we don't yet emulate.
1999-05-14 18:43:01 +00:00
thorpej
64d90992b4 Regen. 1999-05-14 18:41:20 +00:00
thorpej
ba8fcafa16 Emulate the Linux vfork(2) (which is like OSF/1 vfork(2) and NetBSD's
__vfork14(2)) and {get,set}resuid(2).  Linux does not have {get,set}resgid(2)
on their Alpha port!
1999-05-14 18:39:38 +00:00
thorpej
087adcea52 Regen. 1999-05-13 23:43:15 +00:00
thorpej
fa1c5fed1a Emulate the Linux clone(2) system call. 1999-05-13 23:42:34 +00:00
thorpej
053ec76d86 Fully emulate the Linux wait4(2) system call, including the __WCLONE
flag (which is equivalent to our new WALTSIG).
1999-05-13 01:00:50 +00:00
thorpej
5512f35a12 Define the flags used by the Linux wait4() system call. 1999-05-13 00:31:57 +00:00
thorpej
e2c674e2c6 Add scheduling-related definitions. Currently we have the flags passed
to the __clone(2) system call.
1999-05-12 19:49:09 +00:00
cgd
c283289b46 For lack of a bit, the letter was lost. For lack of the letter, the
macro was lost.  For lack of the macro, the function was lost.  For lack
of the function, the syscall was lost.  For lack of the syscall, the
application was lost.  For lack of the application, my time was lost.
1999-05-10 21:41:07 +00:00
cgd
9ee892559b regen 1999-05-10 06:00:10 +00:00
cgd
798cd0a332 start at (new) sendmsg and recvmsg. right now, the former doesn't
handle control messages and the latter is just a stub.
1999-05-10 05:58:44 +00:00
cgd
55c7aec3cc rename xopen-ish iovec and msghdr structs 1999-05-10 04:18:22 +00:00
cgd
21c7b563a8 msghdr and x/open iovec structs 1999-05-10 03:58:50 +00:00
cgd
99cc65e9ba regen 1999-05-10 03:34:20 +00:00
cgd
4bf16b94f4 old accept -> compat_43_sys_accept 1999-05-10 03:33:04 +00:00
cgd
bf29d6c987 regen 1999-05-10 03:00:27 +00:00
cgd
1c05179cd4 usleep_thread: round ticks up, don't sleep forever, use better wchan 1999-05-10 02:55:57 +00:00
cgd
1e2f18cb6a listen is the same as native 1999-05-10 02:54:57 +00:00
cgd
f7c70eaf0e regen 1999-05-10 01:59:41 +00:00
cgd
726fed408a plink, plink.... socketpair! 1999-05-10 01:58:37 +00:00
kleink
fe0ce0cd42 Need to explicitly include <machine/cpu.h> for a cpu_wait() macro definition. 1999-05-08 01:23:01 +00:00
drochner
192b3c733c Build libraries for kernel/standalone code from within their compilation
directories and use .PATH to lookup the source files.
(Formerly, the libs were built from the source dirs, with MAKEOBJDIR
set to the compilation directory.)
This solves 2 problems:
-"mkdep" and "make" are now consistent about the file lookup, this fixes
 bad interactions with amd reported in PR bin/7374 (Arne Juul) and
 lossage reported by Andrew Gillham ("obj" dirs and relative paths still
 don't work well together)
-kernel compile trees can be moved around without forcing a new
 "make depend" - fixing PR kern/4021 by Martin Husemann
1999-05-07 14:28:50 +00:00
thorpej
e3669c3393 Add "use counting" to file entries. When closing a file, and it's reference
count is 0, wait for use count to drain before finishing the close.

This is necessary in order for multiple processes to safely share file
descriptor tables.
1999-05-05 20:01:01 +00:00
cgd
3b5a8a7db7 shuffle (sort) 1999-05-05 01:51:31 +00:00
cgd
5e1a5ebf21 clean up sigset_t manipulation macros 1999-05-05 00:57:43 +00:00
cgd
ceff265279 shuffle (alphabetize) 1999-05-05 00:48:30 +00:00
cgd
ff38fb6396 regen 1999-05-04 05:23:05 +00:00
cgd
e7f2a6f938 stub classcntl(). for now, it returns ENOSYS. (a stub for classcntl()
was suggested by Anders Magnusson <ragge@ludd.luth.se>.)
1999-05-04 05:17:22 +00:00
cgd
e24a4116bc add a few XXXs 1999-05-04 05:11:03 +00:00
cgd
debeb21304 regen 1999-05-04 05:00:21 +00:00
cgd
ab7cdebda6 emulate shm*(), but only so far as to return ENOSYS for now (until
they're really needed).  put them in their own file because when we
need to emulate them, they'll need a bunch of code.
1999-05-04 04:59:21 +00:00
cgd
2165378111 add a 'clean' target to nuke files built from syscalls.master, so that
it's easier to commit non-generated files all at once.
1999-05-04 04:56:44 +00:00
cgd
d0937ee8b6 don't pull in osf1_syscall.h 1999-05-04 02:45:35 +00:00
cgd
15e8e0d207 IPC key_t 1999-05-04 02:44:43 +00:00
cgd
759a1e3cd7 regen 1999-05-04 02:12:33 +00:00
cgd
bd7a54454d pathconf/fpathconf 1999-05-04 02:12:15 +00:00
cgd
a0a7b0de30 protection-related bits -> osf1_prot.c 1999-05-01 05:49:01 +00:00
cgd
ca7738a519 clean up ordering, add a comment or two 1999-05-01 05:43:52 +00:00
cgd
12df8bf0da {get,set}rlimit, getrusage -> osf1_resource.c 1999-05-01 05:41:56 +00:00
cgd
8d9e0684d2 descriptor-frobbing syscalls (fstat, fcntl(), lseek(), etc.) ->
osf1_descrip.c.
1999-05-01 05:34:59 +00:00
cgd
39ba96ee96 utimes() belongs here 1999-05-01 05:33:36 +00:00
cgd
789e810c20 get/settimeofday, interval timers -> osf1_time.c 1999-05-01 05:25:37 +00:00
cgd
bf9d06e035 typical filename using syscalls (open(), access(), execve(), etc.) -> osf1_file.c 1999-05-01 05:18:01 +00:00
cgd
deeb289def sys_generic-ish bits move to osf1_generic.c 1999-05-01 05:06:46 +00:00
cgd
f493e92106 clean up vm-related headers 1999-05-01 04:59:42 +00:00
cgd
d3b6da7da3 and the socket calls move 1999-05-01 04:57:15 +00:00
cgd
ffc61cf092 shuffle some conversion bits around that were missed earlier 1999-05-01 04:47:00 +00:00
cgd
9cc30ed036 needs mount.h 1999-05-01 04:38:39 +00:00
cgd
2d25ceb2d2 pull in compat_util.h 1999-05-01 04:38:20 +00:00
cgd
e42f7d331f move mmap() and related functions into their own file 1999-05-01 04:34:20 +00:00
cgd
170b003d0b shuffle bits around. separate conversion conversion functions and tables
from the code that uses them, just as I previously separated out the
OSF/1 definitions and structures from the code that translates to and
from them.
1999-05-01 02:57:08 +00:00
cgd
38da682259 Moved to osf1_cvt_errno.c,v 1999-05-01 02:16:01 +00:00
cgd
333154d794 Moved from osf1_errno.c,v 1999-05-01 02:16:00 +00:00
cgd
af8a9059d3 compute the value to be used for e_arglen via howmany(value, sizeof (char *)),
rather than just "value / sizeof (char *)".  While in these cases the latter
works as well, the former's a better example for other uses to copy (since
it handles the non-integral multiple case correctly).
1999-04-30 23:07:01 +00:00
cgd
1bce8c40fc ep_arglen is in units of 'sizeof (char *)', not in units of bytes. use
howmany(value, sizeof (char *)) to get the right value.
1999-04-30 23:02:06 +00:00
cgd
5a93f3c9b1 emulate wait4(), put some guts into sysinfo(), and redo fcntl()
F_{GET,SET}FL emulation.
1999-04-30 05:25:34 +00:00
cgd
28410181b2 return error if unsupported sigaltstack flags used 1999-04-30 05:24:04 +00:00
cgd
a928d381b2 regen 1999-04-30 04:36:04 +00:00
cgd
d2d8e961fe emulate wait4, clean up sigreturn args, emulate {get,set}domainname 1999-04-30 04:33:51 +00:00
cgd
e836b093b4 nuke most fcntl() F* flags, and note that O_* should be used instead. 1999-04-30 04:31:45 +00:00
cgd
c21c5d0c2d systeminfo.h SI_* constants, wait.h W{NOHANG,UNTRACED}, plus spacing cleanup 1999-04-30 02:12:03 +00:00
cgd
afe914207b we can actually setitimer() now 1999-04-30 01:57:27 +00:00