martin
ac28b114d2
Make this compilable again on ports without __HAVE_SYSCALL_INTERN.
2000-12-11 19:53:06 +00:00
mycroft
11fcbfe7a6
Call e_syscall_intern every time ktrace flags are modified.
2000-12-11 16:39:01 +00:00
tsutsui
aaa48a8d25
Use USPACE_ALIGN for an alignment argument on allocating U-area.
...
The default value is 0, and could be overridden by machine/vmparam.h.
2000-12-11 15:35:42 +00:00
mycroft
f495cd9dc6
Introduce 2 new flags in types.h:
...
* __HAVE_SYSCALL_INTERN. If this is defined, e_syscall is replaced by
e_syscall_intern, which is called at key places in the kernel. This can be
used to set a MD syscall handler pointer. This obsoletes and replaces the
*_HAS_SEPARATED_SYSCALL flags.
* __HAVE_MINIMAL_EMUL. If this is defined, certain (deprecated) elements in
struct emul are omitted.
2000-12-11 05:28:59 +00:00
thorpej
105cf38061
Add some basic statistics to pool_cache.
2000-12-11 05:22:55 +00:00
fvdl
405b695086
Make sobind() take a struct proc *. It already took curproc and
...
passed it down to the appropriate usrreq function, and this
allows usage for contexts that need to be explicitly different
from curproc (like in the NFS code when binding to a reserved port).
2000-12-10 23:16:28 +00:00
mycroft
66610a4779
Introduce PROC_PC(), which is used to get a process's user PC. If this is
...
defined, call addupc_intr() directly from statclock() in the system time case,
using the same P_OWEUPC path if the copyin/copyout fails.
Use this in i386 to remove profiling code from the normal userret() path.
2000-12-10 19:29:30 +00:00
thorpej
ce866cd0e8
Don't hold a pool cache lock across any call to pool_get() or pool_put().
...
This allows us to change a try-lock into a normal lock in the reclaim
case.
2000-12-10 17:03:34 +00:00
fvdl
538c381225
findblkname is not static (and is in fact used outside this file).
2000-12-10 14:14:15 +00:00
jdolecek
7a2157f1f3
emul_unregister(): fix incorrect loop condition - execsw[] is not NULL
...
terminated
2000-12-10 12:42:30 +00:00
jdolecek
9b6d040095
fork1(): write the ktrace entry before the parent is put to sleep for
...
FORK_PPWAIT case, so that this DTRT for vfork() too
2000-12-10 11:41:20 +00:00
jdolecek
a6ca890142
always fill in e_syscall in respective emul_*; if the emulation doesn't
...
have it's own separated *_syscall() function, use syscall()
2000-12-09 12:38:23 +00:00
mycroft
acbeba20e1
Fix compile glitch.
2000-12-09 07:17:32 +00:00
mycroft
547de8a6a3
Regen.
2000-12-09 07:05:10 +00:00
mycroft
02d8d5f9bf
Define 3 new functions:
...
* sys_getpid_with_ppid()
* sys_getuid_with_euid()
* sys_getgid_with_egid()
that do the retval[1] hack. Use them when COMPAT_43 is defined.
2000-12-09 07:04:47 +00:00
mycroft
51e3b887d7
Regen.
2000-12-09 06:19:40 +00:00
mycroft
e2743f72a9
Round up the sysent table size.
2000-12-09 06:15:42 +00:00
mycroft
8cb9be1967
s/unimplemented/filler/
2000-12-09 05:41:12 +00:00
mycroft
f348afacb9
Regen.
2000-12-09 05:37:01 +00:00
mycroft
23284f8acf
Add another const.
2000-12-09 05:33:27 +00:00
mycroft
9682cf0b09
Add the %% separators.
2000-12-09 05:27:28 +00:00
mycroft
060456b651
Couple of changes:
...
* Make the syscallnames[] table const.
* Add a separator between the #include section and the syscalls section, so
that #if/#else/#endif can be handled differently in the two.
* Add support for rounding up the size of the sysent table.
2000-12-09 05:27:08 +00:00
jdolecek
a65f2129f3
call exec_init() with before letting init(8) exec
2000-12-08 22:07:36 +00:00
jdolecek
0576f87ad3
add infrastructure to load emulations and their executable support dynamically
...
via LKM
2000-12-08 19:42:11 +00:00
augustss
246260555f
Use correct type for todo variable.
...
Use more explicit panics messages.
2000-12-08 02:25:50 +00:00
thorpej
21ca07bb5c
...and when freeing cache groups, clear `freeto' if that's the one
...
we're freeing.
2000-12-07 21:30:07 +00:00
thorpej
3e9d93b241
When we invalidate a pool cache, make sure to clear `allocfrom' if
...
we empty out that cache group.
2000-12-07 20:16:56 +00:00
thorpej
1a658211bc
Add a /c modifier to "show pool" to display pool caches.
2000-12-07 19:30:31 +00:00
jdolecek
6ae23b9300
update comment about the sense of placement of NDINIT()
2000-12-07 16:14:35 +00:00
thorpej
7553470722
This is a first-cut implementation of support for caching of
...
constructed objects in the pool allocator, similar to caching
of constructed objects in the Solaris SLAB allocator.
This implementation is a separate API (pool_cache_*()) layered
on top of pools to keep the caching complexity out of the way
of pools that won't benefit from it.
While we're here, allow pool items to be as large as the pool
page size.
2000-12-07 05:45:57 +00:00
thorpej
581799e1f8
ANSI'ify.
2000-12-06 18:20:52 +00:00
thorpej
131ac36401
pool_handle_t -> struct pool *
2000-12-06 18:05:57 +00:00
scw
6afa06dad6
Add support for COMPAT_AOUT_M68K.
2000-12-02 20:44:09 +00:00
jdolecek
fc181f91c6
use EMUL_GETPID_PASS_PPID or EMUL_GETID_PASS_EID to find out if one should
...
pass parent pid for getpid() or effective id for get[ug]id(), instead
of compile-time dependency
2000-12-01 20:34:17 +00:00
jdolecek
d06ce6de86
set the EMUL_HAS_SYS___syscall flag for emul_netbsd
2000-12-01 19:41:49 +00:00
jdolecek
30760da04a
no need to define emul_osf1, <compat/osf1/osf1_exec.h> defines it for us now
...
set execsw[] entrys' priority to appropriate values
2000-12-01 12:57:55 +00:00
jdolecek
01040d97a2
add e_path (emulation path) to struct emul, which replaces emulation-specific
...
*_emul_path variables
change macros CHECK_ALT_{CREAT|EXIST} to use that, 'root' doesn't need
to be passed explicitly any more and *_CHECK_ALT_{CREAT|EXIST} are removed
change explicit emul_find() calls in probe functions to get the emulation
path from the checked exec switch entry's emulation
remove no longer needed header files
add e_flags and e_syscall to struct emul; these are unsed and empty for now
2000-12-01 12:28:30 +00:00
nathanw
be487a2752
Set doreallocblks=1 here.
2000-11-30 20:56:53 +00:00
jdolecek
7d3a48b31d
recognize ^if and ^endif in input master syscall file specially - output it
...
like #if and #endif to sysdcl; this can be used to insert ifdefs
to generated *sysent.c
2000-11-29 22:09:05 +00:00
thorpej
aa77dea4c2
No need to play silly name trickery when we know we're talking about
...
64-bit ELF binaries.
2000-11-28 21:58:12 +00:00
mrg
51858ad725
backout part of execsw/LKM changes: netbsd_elf32_signature() is used by
...
the compat/netbsd32 code so de-static it again.
2000-11-28 13:10:41 +00:00
mrg
b4e53bf009
wrap newly introduced >80 char lines.
2000-11-28 12:24:34 +00:00
jdolecek
e650ecc818
prototype netbsd_elf64_probe() ifdef EXEC_ELF64, not for if !defined(EXEC_ELF32)
2000-11-27 18:04:32 +00:00
jdolecek
414f0ac116
netbsd32 emulation doesn't exec 64bit binaries
2000-11-27 17:21:22 +00:00
chs
69ad0d84c0
regen.
2000-11-27 09:04:59 +00:00
chs
aeda8d3b77
Initial integration of the Unified Buffer Cache project.
2000-11-27 08:39:39 +00:00
nisimura
10571faa84
Introduce uvm_km_valloc_align() and use it to glab process's USPACE
...
aligned on USPACE boundary in kernel virutal address. It's benefitial
for MIPS R4000's paired TLB entry design.
2000-11-27 04:36:40 +00:00
takemura
3c9d9276dc
Add new powerhook argument values, PWR_SOFTSUSPEND, PWR_SOFTSTANDBY and
...
PWR_SOFTRESUME. Apm calls powerhook with the values in normal interrupt
priority level while others are protected with splhigh().
2000-11-26 11:08:57 +00:00
jdolecek
d9a0883770
define COMPAT_OLDSOCK unconditionally - the code is used virtually for all
...
emulations besides NetBSD, and this way it's LKM-safe
2000-11-24 21:38:28 +00:00
chs
55a751c9d5
add ddb commands "show uvmexp" and "show ncache".
...
the former used to be "call uvm_dump", the latter is new.
2000-11-24 07:25:50 +00:00
chs
ab077e1ed4
change cache_purgevfs() from O(N^2) to O(N).
...
use queue.h macros where possible.
2000-11-24 05:02:23 +00:00
chs
fa19fe52db
adjust the spinlock macros in the non-MULTIPROCESSOR, non-LOCKDEBUG case
...
so that gcc will think that static spinlock are used.
this allows us to remove the ugly conditionalization of
static spinlock declarations.
2000-11-24 03:59:07 +00:00
chs
22d140fd0b
ifdef DEBUG, increase the max size we'll overwrite in freed memory blocks
...
to detect modifications after frees from 32 bytes to 1 page.
2000-11-24 00:34:32 +00:00
thorpej
113dd58233
Add a LOCKDEBUG check for a r/w spinlock spinning out of control.
...
Partially from Bill Sommerfeld.
2000-11-22 06:31:22 +00:00
itojun
6c7e531e99
make COMPAT_OSF1 to compile. not tested (could someone review?).
2000-11-22 03:48:33 +00:00
enami
29f1bcd8e2
Unlock mutex before jumping off from the critical region instead of
...
testing if locked.
2000-11-21 03:53:27 +00:00
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