Commit Graph

3505 Commits

Author SHA1 Message Date
cube
a6b803a79f Constify conversion functions. 2005-07-23 21:51:29 +00:00
cube
21472d491b Regen (timer_create(2) and friends). 2005-07-23 18:57:07 +00:00
cube
23a1110cbd Implement the timer_create(2) family of syscalls. 2005-07-23 18:56:15 +00:00
cube
ee24060ae4 Remove duplication of code for netbsd32_wait4() by using stackgap(9). 2005-07-22 22:46:29 +00:00
cube
606552e84c Rework sunos32_execv{,e} after removal of netbsd32_execve2.
XXX COMPAT_SUNOS32 needs a SUNOS32PTR64() macro.
2005-07-13 12:49:32 +00:00
cube
86f97cc446 Do the CHECK_ALT_EXIST dance again in netbsd32_execve(). It was lost in
previous commit.
2005-07-13 11:55:19 +00:00
cube
e13e6c14c7 netbsd32_execve2() doesn't exist anymore. 2005-07-13 11:53:57 +00:00
christos
00a78ed413 Delete define for sunos_syscall_intern. 2005-07-12 22:45:11 +00:00
martin
e14ba58310 When returning 64bit values (from netbsd32_lseek) fix up the return
value vector (of 32bit values, most likely) via a MD macro.
2005-07-12 15:06:17 +00:00
cube
e937141b42 Regen (*xattr(2)). 2005-07-12 07:46:19 +00:00
cube
728e5e01bd Add the *xattr(2) family of syscalls. Just like the *extattr(2) family,
they're waiting for an actual FS back-end to be tested, but are still
straightforward enough.
2005-07-12 07:45:34 +00:00
cube
0477abe883 Regen (rasctl(2)). 2005-07-11 20:18:52 +00:00
cube
241e7db4d5 Add rasctl(2). Thanks to the regression tests for that syscall, I was able
to discover the bugs in netbsd32_setitimer() and netbsd32_execve().
2005-07-11 20:18:05 +00:00
cube
355bcba766 Split sys_execve() and add execve1() that does most of the work, and takes
as an argument a function that will retrieve an element of the pointer
arrays in user space.  This allows COMPAT_NETBSD32 to share the code for
the emulated version of execve(2), and fixes various issues that came from
the slow drift between the two implementations.

Note:  when splitting up a syscall function, I'll use two different ways
       of naming the resulting helper function.  If it stills does
       copyin/out operations, it will be named <syscall>1().  If it does
       not (as it was the case for get/setitimer), it will be named
       do<syscall>.
2005-07-11 20:15:26 +00:00
cube
08fd92bac5 Split sys_getitimer and sys_setitimer to make it possible to share the
relevant code with the COMPAT_NETBSD32 version, and make the latter use
the new functions.

This fixes netbsd32_setitimer() which had drifted from the native syscall
and did not work properly anymore.
2005-07-11 19:50:42 +00:00
christos
25e2fae9e9 Add a sunos_machdep include file to deal with MD implementations of
sunos_syscall_intern.
2005-07-11 13:14:49 +00:00
christos
dac018add9 More syscall_intern lossage. 2005-07-10 16:45:33 +00:00
christos
24d0f10c0f define sunos_syscall_intern now that sparc needs it. 2005-07-10 16:40:49 +00:00
cube
0057da6efa NOFOLLOW should be passed to NDINIT() instead of FOLLOW for lstat(2).
Reported by Martin Husemann.
2005-07-10 16:34:53 +00:00
cube
4a8942e74c Regen. 2005-07-10 14:32:35 +00:00
cube
7e3a28a419 Add support for fsync_range(2). 2005-07-10 14:32:16 +00:00
cube
c6a5f27efa Regen. 2005-07-10 11:29:35 +00:00
cube
b01a57e4ce Implement __clone(2). 2005-07-10 11:28:58 +00:00
cube
91598566dc Report changes from sys_wait4(). 2005-07-10 11:28:03 +00:00
christos
ecc4f71237 define syscall again. 2005-07-10 04:23:30 +00:00
christos
4d0656f353 include the _32 flavor of the machdep file too. 2005-07-10 00:56:19 +00:00
christos
6667cfbdab We have syscall_intern now. 2005-07-10 00:56:01 +00:00
christos
f1461c7e8a No point in declaring syscall_intern and syscall in a zillion places. 2005-07-10 00:45:52 +00:00
cube
16e20b37d6 Regen. 2005-07-09 22:40:34 +00:00
cube
57017881b4 Implement pselect(2) and pollts(2). 2005-07-09 22:40:13 +00:00
cube
0056ee71b1 Make netbsd32_select() use selcommon() instead of a gross copy/paste of
the old sys_select() code.
2005-07-09 21:58:09 +00:00
cube
0d4567cd91 Regen. 2005-07-08 22:22:19 +00:00
cube
01f1f7ce7d Add mlockall(2) and munlockall(2). 2005-07-08 22:21:43 +00:00
cube
e1c5d71d3d Regen 2005-07-08 21:40:26 +00:00
cube
dfc332d6df Implement the extattr(3) family of syscalls.
XXX However, those remain untested as there are currently no backend for
XXX extattr(9) in NetBSD.
2005-07-08 21:39:39 +00:00
cube
a31209bb48 Regen 2005-07-04 00:27:15 +00:00
cube
d500f440df Implement uuidgen(2). 2005-07-04 00:26:06 +00:00
cube
72f6b3a65c Constify machine32 and machine_arch32. 2005-07-03 17:18:02 +00:00
cube
6f082c10a9 Make COMPAT_NETBSD32 emulate hw.machine. While it might seem wrong to do
so, it introduces breakage because a lot of applications make assumptions
from its value.  It's especially bad in the sparc64 case, where 64-bits
instructions can be used in 32-bits addressing mode.  However, there are
other means to know the capabilities of the CPU.
2005-07-03 16:53:46 +00:00
christos
7a55962329 the exception numbers are MI. 2005-06-25 08:28:34 +00:00
christos
f63c68071c minor refactoring; does not work on the i386 yet. 2005-06-25 06:30:19 +00:00
christos
5ae508513d - include <sys/wait.h> so that this compile
- use the code field directly, instead of redoing the logic.
- XXX: the status field must be wrong. I think that the _WSTATUS()
  should not be used directly.
2005-06-25 02:19:06 +00:00
manu
d83c516040 More accurate SIGCHLD code and status for siginfo 2005-06-24 22:57:05 +00:00
manu
c8b33aa328 report the right process status 2005-06-22 21:57:30 +00:00
manu
5e803980cd Fix siginfo to return the right child's status. 2005-06-22 20:20:30 +00:00
manu
6593739f61 Implent CLONE_PARENT_SETTID, CLONE_CHILD_CLEARTID, and CLONE_CHILD_SETTID
options to clone(). This makes fork() work on amd64.

clone() prototype has changed and the changes is probably revelant on some
other arches.
2005-06-22 15:10:51 +00:00
atatat
fc1ed39348 Also fix (wrt the new const stuff) the one user of sysctl_locate()
outside of the main sysctl code.
2005-06-22 03:13:34 +00:00
atatat
df13e3579e Change the rest of the sysctl subsystem to use const consistently.
The __UNCONST macro is now used only where necessary and the RW macros
are gone.  Most of the changes here are consumers of the
sysctl_createv(9) interface that now takes a pair of const pointers
which used not to be.
2005-06-20 02:49:18 +00:00
christos
6f86542bb2 remove duplicate declaration. 2005-06-19 23:46:32 +00:00
christos
4e330f1fbc We don't have sigcode if we are not in COMPAT_16. 2005-06-14 22:35:20 +00:00
matt
e1245a3c46 Rework the coredump code to have no explicit knownledge of how coredump
i/o is done.  Instead, pass an opaque cookie which is then passed to a
new routine, coredump_write, which does the actual i/o.  This allows the
method of doing i/o to change without affecting any future MD code.
Also, make netbsd32_core.c [re]use core_netbsd.c (in a similar manner that
core_elf64.c uses core_elf32.c) and eliminate that code duplication.
cpu_coredump{,32} is now called twice, first with a NULL iocookie to fill
the core structure and a second to actually write md parts of the coredump.
All i/o is nolonger random access and is suitable for shipping over a stream.
2005-06-10 05:10:12 +00:00
tsutsui
e392fd287f Remove __P() and parameter names from a prototype declaration. 2005-06-03 23:05:46 +00:00
tsutsui
38825830c7 Appease gcc -Wcast-qual. 2005-06-03 23:03:59 +00:00
martin
12771d0723 Consistently constify 2005-06-03 18:53:50 +00:00
martin
75cc390f62 Avoid shadow warnings. 2005-06-03 18:52:52 +00:00
martin
a2a1dc8e7c Add extern declaration for "bufpages". 2005-06-02 20:14:55 +00:00
matt
25a0e29a75 When writing coredumps, don't write zero uninstantiated demand-zero pages.
Also, with ELF core dumps, trim trailing zeroes from sections.  These two
changes can shrink coredumps by over 50% in size.
2005-06-02 17:01:43 +00:00
tsutsui
bce385b9f7 Add a const. 2005-06-02 16:54:52 +00:00
tsutsui
189e121846 Fix shadow warnings. 2005-06-02 15:22:03 +00:00
drochner
c2a5fd0191 more cast-qual fallout 2005-06-02 13:03:27 +00:00
drochner
bce73c1519 in siginfo conversion functions, declare the source operand as "const" 2005-06-02 10:27:43 +00:00
drochner
093f3bf058 remove (caddr_t) casts on "const" pointers, and use __UNCONST()
where arguments are copied to the stackgap
2005-06-01 15:34:15 +00:00
drochner
8aa146cea7 avoid shadow warnings 2005-06-01 15:29:41 +00:00
drochner
5a09c73a94 fix const'ification fallout 2005-06-01 15:28:56 +00:00
christos
a7c4860a95 fix shadowed variable 2005-05-31 00:43:17 +00:00
christos
94984f467b - fix 32 -> 64 pointer casts properly.
- add const
- fix shadow
2005-05-31 00:42:37 +00:00
christos
805ebc54c2 - add const
- fix shadowed variables
2005-05-31 00:42:10 +00:00
christos
d2dc83130f - add const
- avoid shadowed variables.
2005-05-31 00:41:09 +00:00
chs
a38226d23a regen 2005-05-30 23:00:39 +00:00
chs
3f12eda6dc track change to swapctl args in kern/syscalls.master. 2005-05-30 22:59:55 +00:00
christos
fb4b40b7e8 - sprinkle const.
- add XXXUNCONST to the emul_find() pbuf argument free'ing. XXX: this needs
  an api change.
- avoid variable shadowing.
2005-05-29 22:08:16 +00:00
christos
1473b3a0a1 XXX: Remove fishy volatile. 2005-05-29 22:07:02 +00:00
jmc
36b625d324 Regen 2005-05-23 23:22:27 +00:00
jmc
55c161e3ff Add clock_* POSIX functions. 2005-05-23 23:21:49 +00:00
fvdl
57409f3466 sigreturn doesn't take arguments. Instead, find out where the signal
frame is from the stack pointer in the frame frame.

Also, don't forget to copy %rip back in.
2005-05-22 19:31:15 +00:00
fvdl
e83accc0f6 Regen after sigreturn argument change. 2005-05-22 19:29:40 +00:00
fvdl
8251c0b501 Change sigreturn to have no arguments. 2005-05-22 19:29:15 +00:00
fvdl
beae305307 Use a modified buildcontext function for Linux signals. It doesn't set
the unused segment registers, it just uses the already used values.
2005-05-22 14:52:12 +00:00
fvdl
33e2d79f47 Define linux_usertrap function, and set it in struct emul. For all
but amd64, it just returns 0, doing nothing.

For amd64, it implements vsyscalls through cheating: if the faulting
address is in the vsyscall area (which is statically known on Linux/amd64),
and the intruction pointer is too, it must have been a vsyscall. In that
case, retrieve the return address from the user stack, fix up %rip and
%rsp, and just execute the normal system call. It will return as if
the vsyscall has been executed.
2005-05-20 12:48:26 +00:00
mrg
f56c2db8b9 tramp and vers are used unconditionally, make them visible everywhere. 2005-05-20 01:06:50 +00:00
manu
53fb6703e5 Add support for Linux SA_RESTORER on amd64. 2005-05-19 21:16:29 +00:00
elad
5888b16eef Some changes in veriexec.
New features:

  - Add a veriexec_report() routine to make most reporting consistent and
    remove some common code.
  - Add 'strict' mode that controls how veriexec behaves.
  - Add sysctl knobs:
     o kern.veriexec.verbose controls verbosity levels. Value: 0, 1.
     o kern.veriexec.strict controls strict level. Values: 0, 1, 2. See
       documentation in sysctl(3) for details.
     o kern.veriexec.algorithms returns a string with a space separated
       list of supported hashing algorithms in veriexec.
  - Updated documentation in man pages for sysctl(3) and sysctl(8).

Bug fixes:

  - veriexec_removechk(): Code cleanup + handle FINGERPRINT_NOTEVAL
    correctly.
  - exec_script(): Don't pass 0 as flag when executing a script; use the
    defined VERIEXEC_INDIRECT - which is 1. Makes indirect execution
    enforcement work.
  - Fix some printing formats and types..
2005-05-19 20:16:19 +00:00
christos
362a4a0bd5 Yes, it was a cool trick >20 years ago to use "0123456789abcdef"[a] to
implement, xtoa(), but I think defining the samestring 50 times is a bit
too much. Defined HEXDIGITS and hexdigits in subr_prf.c and use it...
2005-05-17 04:14:57 +00:00
fvdl
046b9a57dc Implement clock_* POSIX functions. 2005-05-16 21:18:34 +00:00
fvdl
5acb6d8367 Regen. 2005-05-16 21:18:18 +00:00
fvdl
fe3dd48a91 Add clock_* POSIX functions. 2005-05-16 21:17:11 +00:00
fvdl
e18d1a8ee1 Regen. 2005-05-16 16:03:58 +00:00
fvdl
711b0df630 Add *xattr functions (they all return EOPNOTSUPP). 2005-05-16 16:02:19 +00:00
fvdl
2d668e070c Include linux_sigevent.h (to be used later). 2005-05-16 16:00:31 +00:00
fvdl
33e6ca90d5 Add Linux sigevent definitions. 2005-05-16 15:56:41 +00:00
fvdl
7d91366682 Fix up COMPAT_LINUX support for amd64. Still a work in progress, not
usable yet ("Hello World" runs, but many other things do not work).
2005-05-15 21:44:41 +00:00
fvdl
49395ac65e Make the arch_prctl system call use the saved %gs and %fs mechanism. 2005-05-15 21:43:08 +00:00
jmc
9962871387 #endif for LINUX_SS_ONSTACK needs to go after linux_sys_sigaltstack or builds
break on platforms that don't define it (alpha, sparc)
2005-05-09 19:04:50 +00:00
manu
89647c7ca6 First work on COMPAT_LINUX/amd64
Process startup and dynamiclinking work, but processes hang due to
Linux arch_prctl(2) not being really supported yet.
2005-05-03 16:26:27 +00:00
christos
a5fb891bb9 PR/29696: Joel Carnat: NetBSD freezes when accessing smbfs mounted FS with
firefox/linux due to compat getdents() call assumption that all filesystems
support cookies.
2005-04-19 19:00:25 +00:00
yamt
6b2d8b66a4 merge yamt-km branch.
- don't use managed mappings/backing objects for wired memory allocations.
  save some resources like pv_entry.  also fix (most of) PR/27030.
- simplify kernel memory management API.
- simplify pmap bootstrap of some ports.
- some related cleanups.
2005-04-01 11:59:21 +00:00
drochner
b3d10c788a regen 2005-03-31 16:36:03 +00:00
drochner
014fa21e82 emulate setreuid()/setregid(), from Eric Schnoebelen per PR
port-alpha/21870
2005-03-31 16:34:54 +00:00
christos
14685cd241 s/uvm_map_defaultaddr/uvm_default_mapaddr/ HI FRANK! 2005-03-26 17:10:43 +00:00
fvdl
c487efe4a7 Fix some things regarding COMPAT_NETBSD32 and limits/VM addresses.
* For sparc64 and amd64, define *SIZ32 VM constants.
* Add a new function pointer to struct emul, pointing at a function
  that will return the default VM map address. The default function
  is uvm_map_defaultaddr, which just uses the VM_DEFAULT_ADDRESS
  macro. This gives emulations control over the default map address,
  and allows things to be mapped at the right address (in 32bit range)
  for COMPAT_NETBSD32.
* Add code to adjust the data and stack limits when a COMPAT_NETBSD32
  or COMPAT_SVR4_32 binary is executed.
* Don't use USRSTACK in kern_resource.c, use p_vmspace->vm_minsaddr
  instead (emulations might have set it differently)
* Since this changes struct emul, bump kernel version to 3.99.2

Tested on amd64, compile-tested on sparc64.
2005-03-26 05:12:34 +00:00
christos
37e322ddf6 revert part of previous commit (the block size type and the pad renumbering).
tron says it breaks compat mode.
2005-03-10 23:39:27 +00:00
christos
47e40fce3a Add nanosecond handling on the stat and stat64 code for the i386. 2005-03-10 14:12:27 +00:00
christos
7254715c73 add file locking. 2005-03-05 17:47:38 +00:00
christos
44f6417295 - someone must have been confused about how to use the stackgap.
- remove extra caddr_t
- cleanup unneeded syscalls.
- add locking.
2005-03-05 17:47:06 +00:00
jdolecek
07ad370ac0 const sptab[] 2005-03-05 17:31:07 +00:00
christos
cfa16776df cleanup and fix locking. 2005-03-05 17:16:17 +00:00
christos
8eb274055a Some ibcs2 binaries need executable stacks. Thanks to J Chapman Flack
for determining this and coming up with a fix.
2005-03-03 04:39:37 +00:00
soren
18d6a3043f Emulate basic mtio ioctls. 2005-02-28 22:11:31 +00:00
soren
4f02ad16c6 Remove duplicate statement. 2005-02-28 22:10:46 +00:00
perry
77f2a006d0 regen 2005-02-26 23:58:19 +00:00
perry
bcaf99655c remove trailing whitespace after the "created from: NetBSD..." line. 2005-02-26 23:55:49 +00:00
perry
ed10d3c508 make this rebuild generated files by default 2005-02-26 23:50:14 +00:00
perry
44e692be50 make this rebuild generated files by default, also clean up and make
more like other similar Makefiles.
2005-02-26 23:49:20 +00:00
perry
84f4fbb117 make this rebuild generated files by default 2005-02-26 23:46:50 +00:00
perry
afd17eee3b make this rebuild generated files by default
also, remove unneeded clean target
2005-02-26 23:46:05 +00:00
perry
5acf93db4e make this rebuild generated files by default 2005-02-26 23:44:37 +00:00
perry
6377fcfee3 make this rebuild generated files by default, and don't build .bak files 2005-02-26 23:43:15 +00:00
perry
834b86bb6d eliminate creation of .bak files -- we have source control 2005-02-26 23:42:13 +00:00
perry
fa91538c32 make this rebuild generated files by default 2005-02-26 23:35:00 +00:00
perry
a7f74206ba regen 2005-02-26 23:20:00 +00:00
perry
477853c351 nuke trailing whitespace 2005-02-26 22:58:54 +00:00
simonb
c1530b6999 Remove an erroneous semicolon. 2005-02-26 12:03:15 +00:00
martin
6192fdeaf6 Fix number of elements calculation when converting socket options.
Fixes bugs 4 and 5 reported by Ted Unangst on tech-kern.
2005-02-24 08:15:53 +00:00
heas
e8dfc3dc8e Re-gen for sysctl emulation 2005-02-22 16:16:48 +00:00
heas
b8fe1f6779 Add FreeBSD sysctl emulation for their undocumented special OIDs rooted at
OID 0.  Only OID 0.3 is implemented for now, it 0.3 is the equivalent of
NetBSD's sysctlgetmibinfo().
This includes a new sysctl kern.osreldate with the value __NetBSD_Version__
for kernels with COMPAT_FREEBSD.

Both of these are used by 3ware's FreeBSD tw_cli, which seems to work now.
2005-02-22 16:14:50 +00:00
soren
f4fa62bcd9 SG_GET_VERSION_NUM returns an int. Also make the version number patchable. 2005-02-13 12:53:54 +00:00
christos
d59582c127 Don't zero out the linux request; we still need values from it.
Limit the sense len to the linux input buffer.
2005-02-13 09:05:31 +00:00
christos
47be3434ec We were zeroing out the wrong struct. 2005-02-13 09:01:25 +00:00
christos
be3704c73f pass the flag to fdclone. 2005-02-12 23:14:03 +00:00
christos
e042c0475e Add scsi-generic stuff. 2005-02-03 00:09:30 +00:00
christos
d3b9209df0 Add linux scsi-generic to work for simple cases. Allows gendalia's change
to limp along. From soren with fixes from me.
2005-02-03 00:09:09 +00:00
christos
0b71a2d5de Don't try to map a 0 size bss. 2005-01-30 23:59:57 +00:00
drochner
613f1d9cdb Hmm - vax is different. sendsig_sigcontext() is for __mips only.
Should fix build error found by Havard Eidnes.
2005-01-25 14:56:09 +00:00
matt
027c11539b Add IFNET_FOREACH and IFADDR_FOREACH macros and start using them. 2005-01-24 21:25:09 +00:00
drochner
7c10815d09 use sendsig_sigcontext() directly instead of the generic sendsig() 2005-01-24 10:08:02 +00:00
oki
50d1aadd13 kill __P. 2005-01-22 01:36:59 +00:00
drochner
2eaf2fb804 Use sendsig_sigcontext() as signal delivery function instead
of the generic (NetBSD specific) sendsig().
We can only work with ...sigcontext for now anyway; the
versioning stuff in sendsig() isn't helpful for osf1 emul.
2005-01-16 20:01:48 +00:00
drochner
2fdf16521b Make osf1_sys_sigaction() use the internal sigaction1()
instead of the compat16_ thing.
This saves 2 pointless copyout/copyin cycles to/from
the "stackgap" buffer, and it gets us a step closer
to a COMPAT_OSF! which works w/o COMPAT_16.
This still doesn't support SA_SIGINFO because the old
COMPAT_16 signal trampoline is used.
2005-01-16 19:57:09 +00:00
thorpej
1c95472d01 Add the system call and VFS infrastructure for file system extended
attributes.

From FreeBSD.
2005-01-02 16:08:28 +00:00
christos
5fd3b99d04 check that signum is valid correctly. 2004-12-22 18:16:47 +00:00
abs
5958dd944e Fix comments slighly 2004-12-12 20:42:53 +00:00
christos
31c81b28f5 Cloning cleanup:
1. make fileops const
2. add 2 new negative errno's to `officially' support the cloning hack:
    - EDUPFD (used to overload ENODEV)
    - EMOVEFD (used to overload ENXIO)
3. Created an fdclone() function to encapsulate the operations needed for
   EMOVEFD, and made all cloners use it.
4. Centralize the local noop/badop fileops functions to:
   fnullop_fcntl, fnullop_poll, fnullop_kqfilter, fbadop_stat
2004-11-30 04:25:43 +00:00
kent
b285c03873 getdevinfo():
If a mixer item does not match with AudioNsomething, check whether
it ends with '.' + AudioNsomething.  PR#15441
2004-11-18 14:02:42 +00:00
christos
4de5735102 off-by-one 2004-11-15 23:28:50 +00:00
atatat
612e86b46d Wrap TIMEVAL_TO_TIMESPEC and TIMESPEC_TO_TIMEVAL macros in
do { ... } while(/*CONSTCOND*/0)

so that they can be used unadorned in if/else blocks, etc.  This means
that you now *have* to put a ; at the end of the "call" to these
macros.
2004-11-14 03:30:08 +00:00
christos
040c934485 Remove setup stack function. It moved to linux_exec_machdep.c. 2004-11-13 08:58:23 +00:00
christos
b7286f5ccd Add ptyfs pty device number translation. 2004-11-13 07:20:54 +00:00
christos
1265044e00 add LINUX_TIOCGPTN 2004-11-13 07:20:35 +00:00
christos
44264ea2a6 Add ptyfs magic number and entry. 2004-11-13 07:19:27 +00:00
christos
d5b128a728 Add LINUX_TIOCGPTN for ptyfs pty emulation. 2004-11-13 07:18:34 +00:00