Commit Graph

2350 Commits

Author SHA1 Message Date
jdolecek
baae0324b9 restructure struct emul and execsw, in preparation to make emulations LKMable:
* move all exec-type specific information from struct emul to execsw[] and
  provide single struct emul per emulation
* elf:
  - kern/exec_elf32.c:probe_funcs[] is gone, execsw[] how has one entry
    per emulation and contains pointer to respective probe function
  - interp is allocated via MALLOC() rather than on stack
  - elf_args structure is allocated via MALLOC() rather than malloc()
* ecoff: the per-emulation hooks moved from alpha and mips specific code
  to OSF1 and Ultrix compat code as appropriate, execsw[] has one entry per
  emulation supporting ecoff with appropriate probe function
* the makecmds/probe functions don't set emulation, pointer to emulation is
  part of appropriate execsw[] entry
* constify couple of structures
2000-11-21 00:37:49 +00:00
jdolecek
e5b244c609 disable the LM_EXEC stuff for now, it doesn't work anyway
this will be fixed 'soon'
2000-11-21 00:11:38 +00:00
thorpej
3075dec01a Allow machine dependent code to specify a hook to be run when a
spinlock's interlock is released.

Idea from Bill Sommerfeld.
2000-11-20 20:04:49 +00:00
veego
a174b8a595 simple_lock_held is only defined when you use LOCKDEBUG.
Put it for now in an ifdef LOCKDEBUG.
2000-11-20 06:36:02 +00:00
simonb
f104ee65be Add a sysctl_rdminstruct() function - same as sysctl_rdstruct() but
can return short data if *oldlenp is less than len.
2000-11-20 01:46:56 +00:00
jdolecek
26fe6166ed check_pty(): simple_unlock() might have been called even if the lock was
not locked previously in some cases; unlock only if the lock is held
2000-11-19 22:34:56 +00:00
sommerfeld
0cc75528c8 If MULTIPROCESSOR, count cpus and use that for hw.ncpu 2000-11-19 01:46:26 +00:00
sommerfeld
89b4aa9918 Preliminary MULTIPROCESSOR support:
- for CP_TIME, sum the times across all processors.
 - for kinfo_proc2, fill in cpu_id.
2000-11-19 01:34:58 +00:00
sommerfeld
f276315e1c In pool_setlowat(), only call pool_catchup() if the pool is under the
low water mark.  (Avoids annoying warning when you setlowat a static
pool).
2000-11-19 00:29:51 +00:00
simonb
3f9e6ed0b8 Don't use alloca() - breaks compile on alpha (alloca is not prototyped
anywhere).
2000-11-18 15:58:13 +00:00
jdolecek
4ba9d75b97 pass pointer to used exec_package to emulation-specific exec hook -
emulation code may make decisions based on e.g. exec format
2000-11-16 20:04:33 +00:00
enami
c4c6285008 Don't allow t_linesw to be NULL. 2000-11-15 01:47:14 +00:00
enami
c816e13706 Adjust nlinesw correctly. 2000-11-15 01:42:53 +00:00
enami
54f723723a Cosmetic changes. 2000-11-15 01:41:22 +00:00
thorpej
be14fd9db1 Use round_page() instead of roundup(..., NBPG). 2000-11-14 22:23:06 +00:00
thorpej
e39f7bbe1c NBPG -> PAGE_SIZE 2000-11-14 22:16:38 +00:00
thorpej
38ee35826a NBPG -> PAGE_SIZE. 2000-11-14 22:14:53 +00:00
thorpej
b7d004daa6 Use round_page() instead of roundup(..., NBPG). 2000-11-14 22:13:20 +00:00
itojun
68f0fe3840 make sure every m_aux will be freed.
there are direct use of MFREE() from sys/kern.
(we experienced no memory leak so far, but if we use m_aux for other purposes,
we will need this change)
2000-11-14 20:05:28 +00:00
jdolecek
78b866e95a change the type of *syscallnames[] array to 'const char * const foo[]' 2000-11-13 21:32:15 +00:00
jdolecek
ab8c5177be use SIGACTION() macro to get on appropriate sigaction
structure
2000-11-12 18:17:56 +00:00
eeh
df87630144 Add console magic sequence framework. 2000-11-08 22:41:58 +00:00
ad
642267bcc7 Update for hashinit() change. 2000-11-08 14:28:12 +00:00
ad
5fcf59fd7c Allow for creation of both LIST and TAILQ based hashes by adding a `hash
type' argument to hashinit().
2000-11-08 14:25:23 +00:00
chs
ff1e758c8c use round_page(...) instead of roundup(..., NBPG). 2000-11-08 05:53:10 +00:00
chs
a74393b970 remove unneeded includes. 2000-11-08 05:47:56 +00:00
chs
a284236c04 in fork1(), only add make the new proc visible (by giving it a pid
and adding it to allproc) after it's fully initialized.
this prevents the scheduler from coming in via a clock interrupt
and tripping over a partially-initialized proc.
2000-11-08 05:16:23 +00:00
jdolecek
7d8eefdffc add void *p_emuldata into struct proc - this can be used to hold per-process
emulation-specific data
add process exit, exec and fork function hooks into struct emul:
* e_proc_fork() - called in fork1() after the new forked process is setup
* e_proc_exec() - called in sys_execve() after the executed process is setup
* e_proc_exit() - called in exit1() after all the other process cleanups are
  done, right before machine-dependant switch to new context; also called
  for "old" emulation from sys_execve() if emulation of executed program and
  the original process is different

This was discussed on tech-kern.
2000-11-07 12:41:52 +00:00
jdolecek
75823fcfc2 write KTR_EMUL entry on end of fork1() - primarily usable when the new
process never does execve(2), such as when creating a thread
2000-11-07 12:31:17 +00:00
tv
c6a1ef4f70 8 spaces -> tab 2000-11-05 22:41:35 +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
08810e4e74 Make this file compile again. 2000-11-02 06:57:01 +00:00
eeh
d85adca51f Make line disciplines modular so they can be added or removed dynamically. 2000-11-01 23:51:38 +00:00
he
a08889417a Use an rlim_t to store "available memory", so we don't needlessly
overflow and/or sign extend.
2000-10-29 18:38:47 +00:00
christos
0628f0a87e knf [from charles] 2000-10-17 23:38:55 +00:00
christos
23c15f1578 Don't set P_SUGID if the calls to set{e,}{u,g}id(), setreuid(),
setgroups() did not result in actual changes. This has the nice
side effect that we don't needlesly allocate new credential and
resource limit data structures.

This is so that non setuid programs that call seteuid(getuid()),
don't end up setting P_SUGID, resulting in broken behavior [i.e.
non setuid ssh, doesn't read ~/.hostaliases...].

This is a good candidate for a pullup, if someone reviews it.
2000-10-17 20:53:45 +00:00
itojun
da566268df attach ARP domain only if INET is compiled into the kernel. 2000-10-02 04:27:21 +00:00
ad
50cf734d26 (*minphys)() musn't return zero. 2000-09-29 13:27:12 +00:00
eeh
1ecf6779be Add support for variable end of user stacks needed to support COMPAT_NETBSD32:
`struct vmspace' has a new field `vm_minsaddr' which is the user TOS.

	PS_STRINGS is deprecated in favor of curproc->p_pstr which is derived
	from `vm_minsaddr'.

	Bump the kernel version number.
2000-09-28 19:05:06 +00:00
enami
656bf989ab Factor out common code to manupilate file flags into separate function
like others do.
2000-09-28 06:43:20 +00:00
thorpej
69d28474b7 PHOLD/PRELE around uvm_io() to user address space is unnecessary. There
is nothing in the U-area that we need.
2000-09-26 23:59:23 +00:00
erh
3392996d23 Prevent ptrace on system processes. Avoids panic when attempting to ptrace pid 0, which has no parent. 2000-09-24 07:31:28 +00:00
bjh21
cf9703617a Conditionalise the declaration of sysctl_pty() so that we don't get a
compiler warning in the NPTY==0 case.
2000-09-23 11:33:05 +00:00
enami
6cf8248614 Stop runnable but swapped out user processes also in suspendsched(). 2000-09-23 01:00:35 +00:00
enami
25ea453471 Pathname of length 1023 (MAXPATHLEN - 1) should be valid as corename. 2000-09-23 00:48:29 +00:00
eeh
ef06aa4d68 Fix unbalanced #endif. 2000-09-22 01:37:27 +00:00
eeh
3ec2906321 The files "kbd.h" and "ms.h" are defined in sys/dev/sun/files.sun. Only
include them for ports that are likely to use the Sun line disciplines.
2000-09-22 01:24:07 +00:00
eeh
9220a0cf6b Sun Keyboard/Mouse line discipline support. 2000-09-21 23:31:14 +00:00
bjh21
1f4240a461 Extend NFS_V2_ONLY to remove NQNFS lease support as well. Saves another 10k. 2000-09-19 23:26:25 +00:00
fvdl
a6a5e6cca7 Adapt for VOP_FSYNC parameter change.
Small optimization to shutdown code: only take the syncer lock if
the FS actually used it.
2000-09-19 22:01:41 +00:00