Commit Graph

297 Commits

Author SHA1 Message Date
fvdl
8655b27bf5 SA fixes from Stephan Uphoff. Quoting him:
The patch below (hopefully) improves some signaling problems
found by Nathan.

It also contains some cleanup of the sa_upcall_userret() function
removing any sleep calls using PCATCH.

Unblocked threads now only use an upcall stack after they
acquire the virtual CPU.
This prevents unblocked threads from stealing all available
upcall stacks.


Tested by Nick Hudson.
2003-08-11 21:18:18 +00:00
agc
aad01611e7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
nathanw
6b22e87c69 Whitespace. 2003-07-21 22:57:46 +00:00
fvdl
4bd1a8dcf8 Changes from Stephan Uphoff to patch problems with LWPs blocking when they
shouldn't, and MP.
2003-07-17 18:16:58 +00:00
fvdl
d5aece61d6 Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
2003-06-29 22:28:00 +00:00
darrenr
960df3c8d1 Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records.  The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
2003-06-28 14:20:43 +00:00
nathanw
8e02eedcdf Track the LWP ID of a synchronous (trap) signal, and report it in core dumps. 2003-05-20 17:42:51 +00:00
nathanw
68b16f8c13 Patch from Nick Hudson to clean up a couple of cases in proc_unstop(),
as well as improving the comments a bit. Addresses PR kern/20159.
2003-04-23 21:32:10 +00:00
skrll
ab7df78c6d ANSIfy proc_unstop 2003-04-15 12:11:25 +00:00
wiz
0acfa3bb9e Consistently spell occurrence with two rs. 2003-03-29 22:48:37 +00:00
darrenr
bacf7b9b2b When unblocking threads, do not call setrunnable() on the thread we will
be returning because the code path that calls is will very likely call
setrunnable() again on the returned thread, leading to a panic because
the thread returned is already at LSRUN.  This fixes a problem where netbsd
would panic when using gdb (5.3) on a process with multiple lwp's like this:
% gdb program
(gdb) run
^C
(gdb) quit
2003-03-06 15:31:14 +00:00
nathanw
1e8f36c002 Clear L_SA from all LWPs in sigexit() to prevent any upcalls or
sa_switch() invocations while exiting. Test P_SA instead of L_SA, out
of paranoia. Avoids a possible remrunqueue panic reported by Havard
Eidnes.

Release the kernel lock before calling the userret function to exit in
sigexit(). Problem noted by Paul Kranenburg.
2003-02-17 23:45:00 +00:00
jdolecek
c58bfd1c36 add __sigtimedwait(2) - wait for specified set of signals, with optional
timeout
the semantics of 'timeout' parameter differ to POSIX for the syscall
(not const, may be modified by kernel if interrupted from the wait) -
libc will provide appropriate wrapper

since sigwaitinfo(2) will be implemented as wrapper around sigtimedwait()
too, remove it's reserved slot and move sigqueue slot 'up', freeing
slot #246
2003-02-15 20:54:38 +00:00
dsl
aed442201d Fix support of 15 and 16 character lognames.
Warn if the logname is changed within a session - usually a missing setsid.
(approved by christos)
2003-02-15 18:10:15 +00:00
nathanw
4c99df7fcc Two fixes:
* Change the semantics of proc_unstop() slightly, so that it is
   responsible for making all stopped LWPs runnable, instead of
   all-but-one. Return value is a LWP that can be interrupted if doing
   so is necessary to take a signal. Adjust callers of proc_stop() to
   the new, simpler semantics.

 * When a non-continue signal is delivered to a stopped process and
   there is a LWP sleeping interruptably, call setrunnable() (by way
   of the 'out:' target in psignal1) instead of calling unsleep() so
   that it becomes LSSTOP in issignal() and continuable by
   proc_unstop(). Addresses PR kern/19990 by Martin Husemann, with
   suggestions from enami tsugutomo.
2003-02-07 21:43:18 +00:00
jdolecek
018aae11cd use LIST_FOREACH() macro in proc_stop()/proc_unstop()
rewrite contents of the loop in proc_unstop to be a bit more easily
comprehensible
2003-02-07 09:02:14 +00:00
jdolecek
373f926356 use LIST_FOREACH() for iteration over p_lwps
when panniccing with 'Invalid process state', print the state too
2003-02-03 22:56:23 +00:00
thorpej
e0d8d366df Merge the nathanw_sa branch. 2003-01-18 10:06:22 +00:00
christos
0948705ad2 s/NOSYMLINK/O_NOFOLLOW/ 2002-12-06 22:44:49 +00:00
jdolecek
dc55168cb6 issignal(): put apparently long-forgotten (at least since 4.4BSD)
debug printf inside #ifdef DEBUG_ISSIGNAL

This adresses kern/16760 by Love.
2002-11-28 21:00:27 +00:00
scw
0f91ed3dfa Quell uninitialised variable warnings. 2002-11-24 11:37:54 +00:00
jdolecek
e0cc03a09b merge kqueue branch into -current
kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
2002-10-23 09:10:23 +00:00
gmcgarry
6a6ea308fd Separate the scheduler from the context switching code.
This is done by adding an extra argument to mi_switch() and
cpu_switch() which specifies the new process.  If NULL is passed,
then the new function chooseproc() is invoked to wait for a new
process to appear on the run queue.

Also provides an opportunity for optimisations if "switching to self".

Also added are C versions of the setrunqueue() and remrunqueue()
low-level primitives if __HAVE_MD_RUNQUEUE is not defined by MD code.

All these changes are contingent upon the __HAVE_CHOOSEPROC flag being
defined by MD code to indicate that cpu_switch() supports the changes.
2002-09-22 05:36:48 +00:00
matt
48bbf5f234 Use the queue macros from <sys/queue.h> instead of referring to the queue
members directly.  Use *_FOREACH whenever possible.
2002-09-04 01:32:31 +00:00
thorpej
f1e8d159b0 Fix signed/unsigned conditional expression warning from GCC 3.3. 2002-08-25 21:47:50 +00:00
manu
08a69f7d15 Make killproc really public, and while we are there, constify. 2002-07-28 22:18:51 +00:00
thorpej
011d4d5f44 Add kernel support for having userland provide the signal trampoline:
* struct sigacts gets a new sigact_sigdesc structure, which has the
  sigaction and the trampoline/version.  Version 0 means "legacy kernel
  provided trampoline".  Other versions are coordinated with machine-
  dependent code in libc.
* sigaction1() grows two more arguments -- the trampoline pointer and
  the trampoline version.
* A new __sigaction_sigtramp() system call is provided to register a
  trampoline along with a signal handler.
* The handler is no longer passed to sensig() functions.  Instead,
  sendsig() looks up the handler by peeking in the sigacts for the
  process getting the signal (since it has to look in there for the
  trampoline anyway).
* Native sendsig() functions now select the appropriate trampoline and
  its arguments based on the trampoline version in the sigacts.

Changes to libc to use the new facility will be checked in later.  Kernel
version not bumped; we will ride the 1.6C bump made recently.
2002-07-04 23:32:02 +00:00
thorpej
a180cee23b Pool deals fairly well with physical memory shortage, but it doesn't
deal with shortages of the VM maps where the backing pages are mapped
(usually kmem_map).  Try to deal with this:

* Group all information about the backend allocator for a pool in a
  separate structure.  The pool references this structure, rather than
  the individual fields.
* Change the pool_init() API accordingly, and adjust all callers.
* Link all pools using the same backend allocator on a list.
* The backend allocator is responsible for waiting for physical memory
  to become available, but will still fail if it cannot callocate KVA
  space for the pages.  If this happens, carefully drain all pools using
  the same backend allocator, so that some KVA space can be freed.
* Change pool_reclaim() to indicate if it actually succeeded in freeing
  some pages, and use that information to make draining easier and more
  efficient.
* Get rid of PR_URGENT.  There was only one use of it, and it could be
  dealt with by the caller.

From art@openbsd.org.
2002-03-08 20:48:27 +00:00
christos
eebee4d7f8 PR/14795: Christos Zoulas: Fix locking problem on MP systems where
ltsleep() is calling CURSIG() which can call issignal() and issignal()
could not deal with being called from a locked context. This happens
when a process receives SIGTTIN, and issignal() calls psignal() to
post SIGCHLD to the parent.

XXX: It is really messy to have issignal() handle the job control
functionality and the whole signal interlocking protocol needs to
be re-designed. For now this fix (provided by enami) does the trick.
I've been running with this fix for weeks, and atatat has stress-tested
the kernel running ~30 make kernels...
2001-12-18 15:51:52 +00:00
thorpej
205c159f0e Make the coredump routine exec-format/emulation specific. Split
out traditional NetBSD coredump routines into core_netbsd.c and
netbsd32_core.c (for COMPAT_NETBSD32).
2001-12-08 00:35:25 +00:00
enami
4654f5c754 Implement sigismasked() correctly. KNF while I'm here. 2001-12-05 07:32:24 +00:00
lukem
adc783d537 add RCSIDs 2001-11-12 15:25:01 +00:00
thorpej
33d6023447 Unshare signal actions on exec.
From Matthew Orgass <darkstar@pgh.net>.
2001-07-18 05:34:58 +00:00
nathanw
9e8fb68348 The trace_req() function is a no-op; garbage collect it. 2001-06-13 16:06:27 +00:00
mrg
1ce89f683e in coredump() remove the COMPAT_NETBSD32 #ifdef, and replace it with a hook.
move coredump32() into compat/netbsd32.
2001-06-06 21:37:19 +00:00
lukem
602451ac6e convert to ANSI KNF 2001-02-26 21:58:30 +00:00
nathanw
214bc3e43f All of our ports have reasonable cpu_coredump()'s that set
core.c_midmag. Garbage collect the "traditional dump" code that
handled the core.c_midmag == 0 case.
2001-02-23 22:01:50 +00:00
thorpej
7200d34a76 Whenever ps_sigcheck is set to true, signotify() the process, and
wrap this all up in a CHECKSIGS() macro.  Also, in psignal1(),
signotify() SRUN and SIDL processes if __HAVE_AST_PERPROC is defined.

Per discussion w/ mycroft.
2001-01-14 22:31:58 +00:00
jdolecek
e9e91a0fb5 split off thread specific stuff from struct sigacts to struct sigctx, leaving
only signal handler array sharable between threads
move other random signal stuff from struct proc to struct sigctx

This addresses kern/10981 by Matthew Orgass.
2000-12-22 22:58:52 +00:00
jdolecek
e8e4da6b87 add new function sigismasked(), which checks whether passed signal
is ignored or masked by the process, and use it appropriately
instead of directly checking p->p_sigmask and p->p_sigignore
2000-11-05 15:37:09 +00:00
enami
25ea453471 Pathname of length 1023 (MAXPATHLEN - 1) should be valid as corename. 2000-09-23 00:48:29 +00:00
thorpej
f759220f40 Define the MI parts of the "big kernel lock" perimeter. From
Bill Sommerfeld.
2000-08-22 17:28:28 +00:00
thorpej
f42254818f splhigh() -> splsched() 2000-08-21 02:09:33 +00:00
thorpej
a86d1f4891 Add a lock around the scheduler, and use it as necessary, including
in the non-MULTIPROCESSOR case (LOCKDEBUG requires it).  Scheduler
lock is held upon entry to mi_switch() and cpu_switch(), and
cpu_switch() releases the lock before returning.

Largely from Bill Sommerfeld, with some minor bug fixes and
machine-dependent code hacking from me.
2000-08-20 21:50:06 +00:00
mrg
705b50bf32 fix LP64 warnings. 2000-07-27 14:00:56 +00:00
sommerfeld
bb22022c59 Format paranoia. 2000-07-08 18:10:25 +00:00
mrg
32aa199ccf remove include of <vm/vm.h> 2000-06-27 17:41:07 +00:00
sommerfeld
40339b39f9 Reduce use of curproc in several places:
- Change ktrace interface to pass in the current process, rather than
p->p_tracep, since the various ktr* function need curproc anyway.

 - Add curproc as a parameter to mi_switch() since all callers had it
handy anyway.

 - Add a second proc argument for inferior() since callers all had
curproc handy.

Also, miscellaneous cleanups in ktrace:

 - ktrace now always uses file-based, rather than vnode-based I/O
(simplifies, increases type safety); eliminate KTRFLAG_FD & KTRFAC_FD.
Do non-blocking I/O, and yield a finite number of times when receiving
EWOULDBLOCK before giving up.

 - move code duplicated between sys_fktrace and sys_ktrace into ktrace_common.

 - simplify interface to ktrwrite()
2000-05-27 00:40:29 +00:00
thorpej
8964c35eca Introduce a new process state distinct from SRUN called SONPROC
which indicates that the process is actually running on a
processor.  Test against SONPROC as appropriate rather than
combinations of SRUN and curproc.  Update all context switch code
to properly set SONPROC when the process becomes the current
process on the CPU.
2000-05-26 00:36:42 +00:00
augustss
264f1d27c6 Get rid of register declarations. 2000-03-30 09:27:11 +00:00
fair
554df2b994 remove kern_logsigexit being "on" for DIAGNOSTIC 2000-02-08 04:13:51 +00:00
fair
c75556a12f Add kernel logging of processes which exit on signals which can
cause a core to drop, and whether the core dropped, or, if it did
not, why not (i.e. error number). Logs process ID, name, signal that
hit it, and whether the core dump was successful.

logging only happens if kern_logsigexit is non-zero, and it can be
changed by the new sysctl(3) value KERN_LOGSIGEXIT. The name of this
sysctl and its function are taken from FreeBSD, at the suggestion
of Greg Woods in PR 6224. Default behavior is zero for a normal
kernel, and one for a kernel compiled with DIAGNOSTIC.
2000-02-06 07:29:56 +00:00
eeh
f293acc959 Dump cores for 32-bit processes. 1999-12-30 16:00:23 +00:00
bouyer
52497e180a Remplace kern.shortcorename sysctl with a more flexible sheme,
core filename format, which allow to change the name of the core dump,
and to relocate it in a directory. Credits to Bill Sommerfeld for giving me
the idea :)
The default core filename format can be changed by options DEFCORENAME and/or
kern.defcorename
Create a new sysctl tree, proc, which holds per-process values (for now
the corename format, and resources limits). Process is designed by its pid
at the second level name. These values are inherited on fork, and the corename
fomat is reset to defcorename on suid/sgid exec.
Create a p_sugid() function, to take appropriate actions on suid/sgid
exec (for now set the P_SUGID flag and reset the per-proc corename).
Adjust dosetrlimit() to allow changing limits of one proc by another, with
credential controls.
1999-09-28 14:47:00 +00:00
bouyer
051211ffa9 Add a new flag, used by vn_open() which prevent symlinks from being followed
at open time. Use this to prevent coredump to follow symlinks when the
kernel opens/creates the file.
1999-08-31 12:30:35 +00:00
thorpej
ea8fb3e04a Turn the proclist lock into a read/write spinlock. Update proclist locking
calls to reflect this.  Also, block statclock rather than softclock during
in the proclist locking functions, to address a problem reported on
current-users by Sean Doran.
1999-07-25 06:30:33 +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
2715b812d1 Rework the process exit path, in preparation for making process exit
and PID allocation MP-safe.  A new process state is added: SDEAD.  This
state indicates that a process is dead, but not yet a zombie (has not
yet been processed by the process reaper).

SDEAD processes exist on both the zombproc list (via p_list) and deadproc
(via p_hash; the proc has been removed from the pidhash earlier in the exit
path).  When the reaper deals with a process, it changes the state to
SZOMB, so that wait4 can process it.

Add a P_ZOMBIE() macro, which treats a proc in SZOMB or SDEAD as a zombie,
and update various parts of the kernel to reflect the new state.
1999-07-22 18:13:36 +00:00
thorpej
2835fc6e46 Pull signal actions out of struct user, make them a separate proc
substructure, and allow them to be shared.

Required for clone(2).
1999-04-30 21:23:49 +00:00
thorpej
16936c9565 Break cdir/rdir/cmask info out of struct filedesc, and put it in a new
substructure, `cwdinfo'.  Implement optional sharing of this substructure.

This is required for clone(2).
1999-04-30 18:42:58 +00:00
mrg
d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
christos
ac66b8f92d Don't forget to lower the spl in the error case of sigprocmask 1999-02-13 15:25:51 +00:00
mycroft
1115f2e840 Er, NSIG is one *more* than the number of signals. 1998-11-13 17:23:52 +00:00
mycroft
d6ffecf67c Oops; signal numbers are 1..NSIG, not 0..NSIG-1. 1998-11-13 17:12:54 +00:00
drochner
835d1b736c Make contsigmask, stopsigmask, sigcantmask kernel private. 1998-10-03 14:29:02 +00:00
enami
19031a5309 make this file compile again; the variable points signal action being
set is `nsa' and there is no variable `sa'.
1998-09-19 02:00:52 +00:00
christos
eb1a214078 Add NOCLDWAIT (from FreeBSD) 1998-09-18 18:48:22 +00:00
pk
470227cc3b Check that the `current directory' is still mounted before dropping core in it. 1998-09-11 13:25:20 +00:00
mycroft
fb526e055c Substantial signal handling changes:
* Increase the size of sigset_t to accomodate 128 signals -- adding new
  versions of sys_setprocmask(), sys_sigaction(), sys_sigpending() and
  sys_sigsuspend() to handle the changed arguments.
* Abstract the guts of sys_sigaltstack(), sys_setprocmask(), sys_sigaction(),
  sys_sigpending() and sys_sigsuspend() into separate functions, and call them
  from all the emulations rather than hard-coding everything.  (Avoids uses
  the stackgap crap for these system calls.)
* Add a new flag (p_checksig) to indicate that a process may have signals
  pending and userret() needs to do the full (slow) check.
* Eliminate SAS_ALTSTACK; it's exactly the inverse of SS_DISABLE.
* Correct emulation bugs with restoring SS_ONSTACK.
* Make the signal mask in the sigcontext always use the emulated mask format.
* Store signals internally in sigaction structures, rather than maintaining a
  bunch of little sigsets for each SA_* bit.
* Keep track of where we put the signal trampoline, rather than figuring it out
  in *_sendsig().
* Issue a warning when a non-emulated sigaction bit is observed.
* Add missing emulated signals, and a native SIGPWR (currently not used).
* Implement the `not reset when caught' semantics for relevant signals.

Note: Only code touched by the i386 port has been modified.  Other ports and
emulations need to be updated.
1998-09-11 12:50:05 +00:00
perry
275d1554aa Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one.
bcopy(x, y, z) ->  memcpy(y, x, z)
ovbcopy(x, y, z) -> memmove(y, x, z)
   bcmp(x, y, z) ->  memcmp(x, y, z)
  bzero(x, y)    ->  memset(x, 0, y)
1998-08-04 04:03:10 +00:00
perry
730baa7431 fix sizeofs so they comply with the KNF style guide. yes, it is pedantic. 1998-07-31 22:50:48 +00:00
thorpej
e95c22ee96 Don't cast the null residual pointer passed to vn_rdwr(). 1998-07-28 18:17:34 +00:00
nathanw
30cbf42b77 Implement short corefile name support, controlled by options SHORTCORENAME
and sysctl kern.shortcorename.

Closes PR kern/5191.
1998-06-28 21:34:58 +00:00
thorpej
8aee7782f5 defopt COMPAT_SUNOS 1998-06-25 23:40:33 +00:00
thorpej
808867c7cf defopt KTRACE 1998-06-25 21:17:15 +00:00
enami
9ad895e33c Backout previous issignal() change so that gdb can trace a process
which has subprocess again; the lite2 change conflicts our local change.
1998-05-07 00:45:16 +00:00
fvdl
e5bc90f40c Merge with Lite2 + local changes 1998-03-01 02:20:01 +00:00
mrg
d90485202c - add defopt's for UVM, UVMHIST and PMAP_NEW.
- remove unnecessary UVMHIST_DECL's.
1998-02-10 14:08:44 +00:00
mrg
1a8c7604f4 initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code.  i provided some help
getting swap and paging working, and other bug fixes/ideas.  chuck
silvers <chuq@chuq.com> also provided some other fixes.

this is the rest of the MI portion changes.

this will be KNF'd shortly.  :-)
1998-02-05 07:59:28 +00:00
kleink
5d7a8f4a16 Modify the recent sigaltstack() interface change to use the __RENAME() scheme;
add __sigaltstack14().
1997-11-29 18:38:20 +00:00
mycroft
d0a1101d26 Disable an effectively no-op reference to u_kproc, with an explanation of what
should be done with it eventually.
1997-10-16 02:45:39 +00:00
mycroft
701f15db33 Reinstate P_FSTRACE, with different semantics:
* Never send a SIGCHLD to the parent if P_FSTRACE is set.
* Do not permit mixing ptrace(2) and procfs; only permit using the one that
  was attached.
1997-04-28 04:49:27 +00:00
mycroft
43a0dc8b74 Remove remnants of P_FSTRACE, which is no longer used. 1997-04-28 02:51:41 +00:00
mycroft
ead5e1a6f7 When stopping a process being traced through procfs, wake up the *parent* (in
case it happens to be doing a WAIT.
1997-04-28 02:36:05 +00:00
mycroft
1cf91041df Nuke the old COMPAT_09 truncation of UIDs, GIDs, process and process group IDs. 1997-04-23 18:59:53 +00:00
kleink
c9c13ef470 Changed killpg1() to 'succeed' even if a process group consists of
SZOMB processes only; the POSIX.1 definition of a background process
group implies that kill(2)ing such a process group must succeed.
1997-04-03 21:08:27 +00:00
mikel
4ab6dc7d2e allow examination of SIGKILL and SIGSTOP signal handlers (but still
disallow changes); from Klaus Klein in PR standards/3398.
1997-03-27 07:52:25 +00:00
cgd
e7af2a8237 * catch up with system call argument type fixups/const poisoning.
* Fix arguments to various copyin()/copyout() invocations, to avoid
  gratuitous casts.
* Some KNF formatting fixes
1996-12-22 10:21:06 +00:00
cgd
8595fc3073 make coredump() use more sensible error returns (even though they're
not used by anything, for now), and implement MNT_NOCOREDUMP by checking
whether or not MNT_NOCOREDUMP is set on the file system where the dump
would land (i.e. the file system of the process's current working
directory), and disallowing the core dump if it's set.
1996-10-23 23:13:19 +00:00
mrg
8fd70c1fe1 in coredump(), check the SUGID bit rather than testing various parts
of the cred structures.  this prevents a previously set[gu]id process
from generating a core file.
1996-10-18 08:39:34 +00:00
christos
f443b89c92 backout previous kprintf change 1996-10-13 02:32:29 +00:00
christos
60d201973e printf -> kprintf, sprintf -> ksprintf 1996-10-10 22:46:11 +00:00
mycroft
de1c962824 Don't core dump if ruid != euid or rgid != egid. 1996-09-01 01:56:10 +00:00
christos
4ef330b934 remove include of <sys/cpu.h> 1996-04-22 01:38:12 +00:00
christos
09afd77655 More proto fixes 1996-02-09 18:59:18 +00:00
christos
8a5b1b92e2 First pass at prototyping 1996-02-04 02:15:01 +00:00
jtc
2fce159ff8 Changed name of sigaltstack's ss_base field to ss_sp to match XPG4.2 and
traditional usage.
1996-01-04 22:21:33 +00:00
mycroft
245f292fed Prefix names of system call implementation functions with `sys_'. 1995-10-07 06:25:19 +00:00
mycroft
2d9aa901e9 Write core dumps with mode 0600. 1995-10-06 16:12:05 +00:00
thorpej
60024eb978 Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 21:40:36 +00:00
mycroft
d23236204d When resetting a signal, change ps_sigact, just to be sure. 1995-08-14 06:07:55 +00:00
mycroft
5c03d498db Fix typos. 1995-08-14 01:47:03 +00:00
mycroft
2e95cf3d31 Implement SA_RESETHAND and SA_NODEFER.
Only return SA_NOCLDSTOP in the sigaction struct for SIGCHLD.
Rename ss_flags bits.
1995-08-13 22:53:59 +00:00
mycroft
73d0d3717e Don't toss out tty stop signals if we're being traced. 1995-07-24 03:18:42 +00:00
christos
1a5a3c9199 Extracted all of the compat_xxx routines, and created a library [libcompat]
for them. There are a few #ifdef COMPAT_XX remaining, but they are not easy
or worth eliminating (yet).
1995-06-24 20:33:55 +00:00
mycroft
d7e904a697 Fix various signal handling bugs:
* If we got a stopping signal while already stopped with the same signal,
the second signal would sometimes (but not always) be ignored.
* Signals delivered by the debugger always pretended to be stopping
signals.
* PT_ATTACH still didn't quite work right.
1995-06-08 23:51:01 +00:00
christos
3d1b06ab09 - new copyargs routine.
- use emul_xxx
- deprecate nsysent; use constant SYS_MAXSYSCALL instead.
- deprecate ep_setup
- call sendsig and setregs indirectly.
1995-04-22 19:42:47 +00:00
cgd
c771cb43cf need COMPAT_OSF1 for some things 1995-03-08 01:20:19 +00:00
mycroft
1815d82b85 Make attach/detach more safe. 1995-02-03 11:35:57 +00:00
mycroft
080e194e58 Remove extra arg to vn_open(). 1994-12-14 19:03:13 +00:00
mycroft
a18ec3cb1b LEASE_CHECK -> VOP_LEASE 1994-12-13 21:52:35 +00:00
cgd
3035c3a3f3 make nosys() return ENOSYS, based on user requests and discussions with
mkm.  it still always signals.
1994-12-07 21:31:11 +00:00
christos
1a320dc9be added extra argument in vn_open and VOP_OPEN to allow cloning devices 1994-11-14 06:01:16 +00:00
mycroft
2f38797073 Trivial changes to make the code more consistent. 1994-11-06 20:39:50 +00:00
cgd
4eaa98b365 cleanliness, type sizes, casts. 1994-10-30 19:15:46 +00:00
cgd
6b86130410 update for new syscall args description mechanism 1994-10-20 04:22:35 +00:00
mycroft
2f710a54ee Convert process, file, and namei lists and hash tables to use queue.h. 1994-08-30 03:04:28 +00:00
deraadt
72b3d408b9 replace "ctob(UPAGES)" and "UPAGES * NBPG" with "USPACE" 1994-08-23 22:07:42 +00:00
cgd
cf92afd66e New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:29:24 +00:00
mycroft
699bbb84b6 Update to 4.4-Lite fs code. 1994-06-08 11:28:29 +00:00
pk
7672b8b95b New style core dumps. 1994-05-25 10:56:56 +00:00
cgd
b1c756dc7b kill a notdef 1994-05-20 07:18:37 +00:00
cgd
63bb5c1ff2 update to 4.4-Lite, with some local changes 1994-05-19 08:13:09 +00:00
cgd
21a03cca53 mostly-machine-indepedent switch, and changes to match. also, hack init_main 1994-05-18 05:12:10 +00:00
cgd
81ae1682d5 osigstack is COMPAT_HPUX, too 1994-05-17 08:46:35 +00:00
cgd
4138ebf515 compat_09 stuff for pid_t's 1994-05-09 07:40:00 +00:00
cgd
a16dcc73f6 signal stack changes; overall upgrade 1994-05-07 01:01:29 +00:00
cgd
a0a7429482 lots of changes: prototype migration, move lots of variables, definitions,
and structure elements around.  kill some unnecessary type and macro
definitions.  standardize clock handling.  More changes than you'd want.
1994-05-05 05:35:42 +00:00
mycroft
495d3519fa HPUXCOMPAT -> COMPAT_HPUX 1994-05-04 04:02:54 +00:00
cgd
4bbabd8e7a Rename a lot of process flags. 1994-05-04 03:41:12 +00:00
cgd
f50f031448 kill syscall name aliases. no user-visible changes 1994-04-29 04:41:02 +00:00
pk
dd617665cc Clear trampoline bits in execsigs(). 1994-04-22 22:33:59 +00:00
pk
21c5c73db5 I suppose a SIGKILL or SIGTERM should make a process go about its
business fast. But the previous situation would allow
"sigblock(sigmask(SIGTERM)); kill(SIGTERM)" to thwart priority policies.
1994-04-19 20:50:30 +00:00
glass
ebf601d2d0 bad comment. fix from vdlinden@fwi.uva.nl (Frank van der Linden) 1994-03-19 18:38:33 +00:00
deraadt
316b930486 pull in COMPAT_SUNOS stuff from magnum 1994-01-23 05:56:27 +00:00
ws
2cee3e073f Make procfs really work for debugging.
Implement not & notepg files in procfs.
1994-01-20 21:22:47 +00:00
mycroft
21edb9924e Canonicalize all #includes. 1993-12-18 03:59:02 +00:00
cgd
86b5a367cf use progname.core for core dump names 1993-12-04 07:11:11 +00:00
cgd
9c32bc786a make allproc be volatile, and cast things accordingly.
suggested by torek, because CSRG had problems with reordering
of assignments to allproc leading to strange panics from kernels
compiled with gcc2...
1993-09-15 22:30:32 +00:00
phil
de69711383 These changes are due to a mismatch with user functions prototyped as
func(short) and the fact the the kernel uses full ints.  This caused
problems on the pc532 port.  These fixes take the good 16 bits passed
by the user program and converts them into the correct form for the
kernel.
1993-09-09 22:03:59 +00:00
cgd
f5ec218873 the swtch() calls here should not need to be splclock() protected,
and certainly don't need to be bracketed by splclock()/splnone(),
the latter of which is a jolitz invention.
1993-08-07 05:16:38 +00:00
mycroft
97cae397ee Finish moving struct definitions outside of function declarations. 1993-07-17 15:24:33 +00:00
cgd
06d372686f revert code base back to net/2. in particular,
fix jolitz's trapsignal() change (it's only supposed to work on curproc)
and add a panic if called w/something other than curproc, and also
fix a relic of his crappy exec implementation
1993-07-07 08:12:33 +00:00
cgd
955ae6a915 change exit() to kexit(), so prototypes are "safe" with stdio.h, etc. 1993-07-04 23:30:33 +00:00
andrew
0e6cb953ea ANSIfications - removed all implicit function return types and argument
definitions.  Ensured that all files include "systm.h" to gain access to
general prototypes.  Casts where necessary.
1993-06-27 06:01:27 +00:00
cgd
230dcf0d05 add $Id$ strings, and clean up file headers where necessary 1993-05-20 02:54:09 +00:00
cgd
61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00