fvdl
6907c4ded8
Do syscall_intern after p_traceflag has been copied to the new
...
process (if it is inherited), so that ktrace continues to work
properly on the child.
2001-01-09 23:36:50 +00:00
nathanw
d75edd2077
Reserve system call slots for getcontext, setcontext, LWPs, and
...
scheduler activations.
2001-01-08 18:25:35 +00:00
chs
6717a2ac1b
in vtruncbuf(), use a "synchronous freeing" flush to prevent a race
...
between write i/os in a disk-based filesystem vs. the disk block being
freed by a truncation, allocated to a new file, and written again with
different data. if the disk driver reorders the requests and does
the second i/o first, the old data will clobber the new, corrupting
the new file.
2001-01-08 07:05:47 +00:00
jdolecek
d7f811d098
utrace(2): limit size of user data to KTR_USER_MAXLEN (currently 2048); return EINVAL if 'len' is bigger
2001-01-05 22:25:26 +00:00
jdolecek
2bd5bf0ec2
regen after utrace() parameter rename
2001-01-05 21:53:38 +00:00
jdolecek
fbc7e223d7
utrace(2): rename 'id' parameter to 'label'
2001-01-05 21:42:08 +00:00
thorpej
eb80878b1b
Happy new year!
2001-01-01 20:18:34 +00:00
jdolecek
df458f620b
Avoid generating duplicate SYS_* defines to *syscall.h - is possible
...
for kern/syscalls.master's sys_getpid()/sys_getpid_with_ppid().
This fixes kern/11853 by Bernd Ernesti.
2001-01-01 16:41:43 +00:00
sommerfeld
aace86f946
MULTIPROCESSOR: The two calls to psignal() inside mi_switch() are
...
inside the scheduler lock perimeter and should be sched_psignal() instead.
2001-01-01 16:02:51 +00:00
ad
e3514a4191
PR 4853: we fork a lot more during startup these days. Wrap nextpid to 500.
2000-12-31 17:43:41 +00:00
sommerfeld
f2bdd546dd
Add a missing simple_unlock() to the LK_NOWAIT/VXLOCK error case in vget().
2000-12-31 03:13:51 +00:00
jdolecek
7899fd7798
regen - utrace(2) addition
2000-12-28 11:16:48 +00:00
jdolecek
a80dee65df
add utrace(2) - this syscall allows to add user ktrace entries
...
idea from FreeBSD, but added argument (const char *id) so that it's possible
to differentiate between entries from different sources
2000-12-28 11:10:15 +00:00
jmc
ca607b87cf
Default lock_printf to syslog rather than printf. Some of the lock debug checks
...
are done inside of wakeup which is holding the sched lock. Printf can cause
wakeup to get called again (pty redirection of console message) which will
panic with sched lock already held.
This isn't a long term fix as not being able to printf vs. sched lock should
be cleaned up better but this avoids continual panics with lockdebug running
and an xterm -C.
2000-12-24 23:56:24 +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
fvdl
0d4862bed1
Regen.
2000-12-22 20:07:09 +00:00
fvdl
8eaf6e8d8e
Make that defined(LKM) || defined(_LKM), to catch both the cases
...
of compiling a kernel with LKM support and compiling an LKM.
2000-12-22 20:05:35 +00:00
fvdl
2ac441ddfb
LKM -> _LKM around opt_ include.
2000-12-22 20:00:16 +00:00
mrg
264248925f
regen
2000-12-22 15:10:38 +00:00
mrg
80ab63644e
redo the previous correctly
2000-12-22 15:09:46 +00:00
mrg
af36640df1
regen
2000-12-22 14:59:40 +00:00
mrg
62230909f1
avoid redefinition of VNODE_OP_NOINLINE
2000-12-22 14:58:39 +00:00
mrg
a0e71c9ca7
avoid redefinition of VNODE_OP_NOINLINE
2000-12-22 14:45:50 +00:00
scw
96698d967e
Change struct emul's "char e_name[8]" field to "const char *e_name"
...
to allow for emulation names >= 8 characters.
2000-12-19 22:08:36 +00:00
mrg
7284657373
only print the magic number changing if not cold
2000-12-19 04:39:19 +00:00
jdolecek
5c6130a2b1
hum, use freebsd_setregs for FreeBSD ELF binaries (this bug was introduced with
...
the execsw[] changes)
2000-12-17 21:36:49 +00:00
fvdl
89b5cfa9c5
Jump out of the scandir loop if VOP_READDIR returns an error, avoiding
...
running around in circles.
2000-12-15 11:52:14 +00:00
mycroft
b29180b2ff
Tighten up the ELF signature checks, and actually look for the ABI tag added
...
in newer glibc versions.
2000-12-15 06:14:21 +00:00
jdolecek
03354da279
this doesn't need <sys/trace.h>
2000-12-13 17:48:46 +00:00
jdolecek
0c74ffb7fd
if the third argument in syscall.conf matches [a-z0-9_], use it as
...
a function alias instead of the function name in { ... }
2000-12-12 17:32:45 +00:00
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