Commit Graph

105 Commits

Author SHA1 Message Date
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
mrg 272c549ab2 copy exec_aout.c:exec_aout_setup_stack to netbsd32_exec_aout_setup_stack,
but use USRSTACK32 not USRSTACK, so that we get 32-bit stack addresses.

now 32 bit a.out binaries work on sparc64.
2000-12-18 14:50:04 +00:00
mycroft 455360f941 Do the __HAVE_SYSCALL_INTERN and __HAVE_MINIMAL_EMUL dance. 2000-12-12 08:00:26 +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 f348afacb9 Regen. 2000-12-09 05:37:01 +00:00
mycroft 9682cf0b09 Add the %% separators. 2000-12-09 05:27:28 +00:00
jdolecek 0576f87ad3 add infrastructure to load emulations and their executable support dynamically
via LKM
2000-12-08 19:42:11 +00:00
eeh 433c92930e Fix uninitialized pointer bug. 2000-12-05 15:25:57 +00:00
fvdl c3d820fa5d Use a copied fktrace syscall arg structure with out 'const int' for the
filedescriptor to copy arguments, avoiding a warning. XXX
2000-12-03 14:48:29 +00:00
fvdl 5ce71a2aed Include opt_* files to make sure prototypes are included. 2000-12-03 14:47:27 +00:00
fvdl 8537802e8d Add systm.h to pull in copyout* prototypes. 2000-12-03 13:15:38 +00:00
mrg f5a3788577 pull over lost fix from nebsd32_exec.c:
>revision 1.25
>date: 2000/12/01 08:59:02;  author: mrg;  state: Exp;  lines: +2 -2
>in netbsd32_elf32_probe(), 'pos' is really a pointer to an Elf_Addr, not a
>vaddr_t.  cast the pointer before dereferencing it to avoid the alignment
>fault that broke compat_netbsd32, cuz pos is defined like:
>        Elf_Addr phdr = 0, pos = 0;
>in exec_elf32.c.
2000-12-02 04:08:35 +00:00
jdolecek df127e0001 make netbsd32_copyargs() an inline 2000-12-01 22:05:18 +00:00
jdolecek e53f148af5 put a.out/elf32 specific things in netbsd32_exec_{aout|elf32}.c
emul_netbsd32 was moved to netbsd32_netbsd.c
g/c netbsd32_exec.c now
2000-12-01 21:51:08 +00:00
jdolecek 758d9354ff always define COMPAT_OLDSOCK (this tracks rev.1.55 of kern/uipc_syscalls.c)
move definition of emul_netbsd32 from netbsd32_exec.c here
fix couple of compile nits I encountered while compiling this with
sparc cross-compiler
2000-12-01 21:48:24 +00:00
jdolecek 70569d32c8 prototype netbsd32_stat12_to_netbsd32() 2000-12-01 19:18:46 +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
mrg 7af8b6448c in netbsd32_elf32_probe(), 'pos' is really a pointer to an Elf_Addr, not a
vaddr_t.  cast the pointer before dereferencing it to avoid the alignment
fault that broke compat_netbsd32, cuz pos is defined like:
	Elf_Addr phdr = 0, pos = 0;
in exec_elf32.c.
2000-12-01 08:59:02 +00:00
jdolecek 50d91bb255 fix typo - it should be compat_09_netbsd32_uname, not compat_09_netbsd32_ouname 2000-11-30 19:19:43 +00:00
jdolecek e8fcbc2bf1 always include netbsd32_ntp_adjtime(), LKMify 2000-11-30 19:17:56 +00:00
jdolecek cad0013a61 only define SYSVMSG, SYSVSEM, SYSVSHM if it's not defined already 2000-11-30 19:14:35 +00:00
jdolecek 6b1add13dc sync netbsd32_execve() with sys_execve() - this involves
VMCMD_RELATIVE support, couple of debugging printfs and addition of
doexechooks() call
also fix one FREE() which should be free()
2000-11-30 12:54:38 +00:00
jdolecek 73f3cd8c7e LKMify 2000-11-29 21:51:49 +00:00
mrg 87650daf07 make this compile again, after execsw/lkm changes. 2000-11-28 13:07:27 +00:00
jdolecek d9f0dcbe03 adapt to execsw[] changes 2000-11-27 17:25:24 +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
mrg 822cec2475 get rid of remaining warnings. 2000-11-18 03:23:53 +00:00
mrg e4f5ca29a9 kill gcc warnings. 2000-11-18 02:00:50 +00:00
jdolecek 78b866e95a change the type of *syscallnames[] array to 'const char * const foo[]' 2000-11-13 21:32:15 +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
martin 41c6b720f1 The ovadvise syscall is (correctly) listed as STD, so move it's implementation
to another place. This makes kernels without options COMPAT_43 link.
2000-09-24 13:09:31 +00:00
mrg 8638251139 declare struct firm_event32 2000-08-22 03:35:14 +00:00
eeh 1e8c5f2119 Fix netbsd32_ioctls. 2000-08-19 14:38:18 +00:00
cgd 0199b04bef update for changed makesyscalls.master 2000-08-18 19:35:15 +00:00
cgd 3af42e5211 update for changed makesyscalls.sh 2000-08-18 19:26:56 +00:00
bjh21 24f9914cb3 Second phase of changes to remove ntp_adjtime(2) from the kernel entirely if
NTP is not defined.

Also removes sysctl_ntptime, since that's unreferenced without NTP.

ntp_gettime(2) is left alone, since it doesn't raise SIGSYS, which sys_nosys()
does.
2000-08-07 18:10:20 +00:00
bjh21 a9397f5bfc Changes to syscalls.master to exclude ntp_adjtime(2) entirely if NTP is not
defined.  Changes to other files will follow in a moment.
2000-08-07 17:59:33 +00:00
thorpej 7cc27a88c0 Convert namei pathname buffer allocation to use the pool allocator. 2000-08-03 20:41:05 +00:00
thorpej 195bf5c09f - Fix the likely cause of the "ps(1) hangs machine" problem. Always
vslock the user pages for the data being copied out to userspace,
  so that we won't sleep while holding a lock in case we need to
  fault the pages in.
- Sprinkle some const and ANSI'ify some things while here.
2000-07-14 07:21:21 +00:00
thorpej 75159452f1 Sync w/ kern_time.c and sys_generic.c 2000-07-13 17:39:03 +00:00
mrg d132b13d89 regen 2000-07-09 13:40:20 +00:00
mrg 8f9515257a - massive warning fix fest.
- fix pread/pwrite return values (plus some other syscalls that looked
  similarly broken).
- prototypes and clean up for netbsd32_ioctl.c

now getpw*() works under compat32!
2000-07-09 13:39:31 +00:00
mrg 18c0283349 look in /emul/netbsd32 for __stat13() and __lstat13(). 2000-07-09 03:03:35 +00:00
mrg 13f211c52e remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-28 15:39:24 +00:00
mrg 2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
soren a9aa2abf94 defopt SYSCALL_DEBUG. 2000-06-06 18:52:30 +00:00
eeh 7a92eda021 Include "opt_DDB.h" to enable the DDB sysctls. 2000-05-30 20:54:26 +00:00
thorpej 21fc65e1a8 sleep() -> tsleep() 2000-05-27 04:52:27 +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
chs a6d33cc1f2 add a new function vn_marktext() for exec code to let others know
that the vnode is now being used as process text.
2000-04-11 04:37:47 +00:00