Commit Graph

4734 Commits

Author SHA1 Message Date
ad
dd1969c253 PR kern/40730 any user can crash the system with KERN_SA
Disable SA. It can be re-enabled with sysctl -w kern.no_sa_support=0.
2009-03-02 22:11:28 +00:00
christos
4538aa34ee Regen 2009-02-26 21:09:00 +00:00
christos
6d029d549a fix kernel build with no options NTP 2009-02-26 21:08:48 +00:00
rmind
f54234d142 Switch Linux futex emulation to native ucas_int(), remove unecessary
futex-specific assembler routines.

Fixes PR/40490.  Reviewed by <ad>.
2009-02-23 20:28:58 +00:00
nakayama
c99ea852e4 - fix copyout size in CLOCKCTL_O?ADJTIME.
- add missing break in CLOCKCTL_NTP_ADJTIME.
2009-02-22 13:06:58 +00:00
njoly
dc871322e1 Do not protect native_to_linux_si_code() under LINUX_NPTL anymore, now
that linux si_code definitions are MI.
2009-02-18 14:43:22 +00:00
njoly
65488d267e Add IPC_64 support for all shmctl(2) commands, and reduce diffs with
compat linux version.
2009-02-18 14:40:14 +00:00
njoly
a1cf1f2eab Add IPC_64 support for all shmctl(2) commands, not only for STAT/SET.
This make it work on i386 under 2.6 emulation.
2009-02-18 14:30:43 +00:00
apb
0cc72e51ac Use "defopt MODULAR" in sys/conf/files, and #include "opt_modular.h"
in all kernel sources that use the MODULAR option.
Proposed in tech-kern on 18 Jan 2009.
2009-02-13 22:41:00 +00:00
njoly
bc0bccb487 Regen for mincore(2). 2009-01-30 13:57:39 +00:00
njoly
8bbb521068 Add mincore syscall. 2009-01-30 13:55:51 +00:00
njoly
b5ae97a41a Cleanup. Kill a few netbsd32_caddr_t in syscalls argument types. 2009-01-30 13:01:36 +00:00
njoly
73abc6838e Revert the previous packed attribute fix. Instead make netbsd32_time_t
of type netbsd32_int64 which provides a 64-bit value with a 32-bit
alignment.

Suggested by dsl.
2009-01-28 00:43:04 +00:00
njoly
f01722c17f Make netbsd32_timespec/netbsd32_timeval structures packed. This fix an
alignment problem between 64-bit kernel and 32-bit userland versions,
which ended in different structure sizes.
2009-01-28 00:02:39 +00:00
njoly
3e5b27ff8e Make all fstat(2) compat syscalls consistently use do_sys_fstat(),
instead of fd_getfile()/fd_putfile() dance.

ok by christos.
2009-01-26 13:00:04 +00:00
christos
f7636e0eb3 fix casts. 2009-01-25 01:22:42 +00:00
cegger
e6ae80b89d buildfix: re-adapt to minor() returning a 32bit value again. 2009-01-22 16:10:19 +00:00
christos
d3baa5ffd2 compile into nothing if not compat 50. 2009-01-21 16:12:20 +00:00
tron
1c6c1db2da Revert accidental of some rogue changes which broke the build. 2009-01-21 10:01:42 +00:00
tron
31faff7381 Include "bsd.own.mk" to get the definition of "NETBSDSRCDIR" via
"/etc/mk.conf". This fixes manual use of "make cleandir".
2009-01-20 22:49:29 +00:00
christos
5bd9ba9f86 add some debugging. 2009-01-20 20:47:33 +00:00
njoly
8ed9e9eb51 Regen for personality(2) addition. 2009-01-20 12:02:09 +00:00
njoly
b22c955a54 Add basic support for linux32 personality(2) syscall. 2009-01-20 12:00:58 +00:00
njoly
31357439c7 Fix typo in compat ioctl name. 2009-01-19 23:01:42 +00:00
christos
143e6033a9 Provide compatibility for pre-christos-time_t sysv sysctls. 2009-01-19 19:39:41 +00:00
christos
d610baec20 provide compat_50 2009-01-19 17:39:02 +00:00
njoly
0ebed1143f Small personality(2) update.
- Allow querying current personality.
- Use symbolic names instead of magic values.
2009-01-19 13:31:40 +00:00
christos
14ba6c67a5 Provide compatibility to the old timeval SCM_TIMESTAMP messages. 2009-01-19 02:27:57 +00:00
njoly
77237e1c08 Regen for wait4 update. 2009-01-17 22:34:02 +00:00
njoly
25a76c08aa Convert linux/linux32 wait(4) to use a compat50 rusage structure. 2009-01-17 22:28:52 +00:00
he
994737a3f6 Regenerate files after updating syscalls.master for compat_ultrix:
Adapt to the state after the recent time_t change.
  Type changes:
    timeval -> timeval50
    itimerval -> itimerval50
    rusage -> rusage50
  and use of the compat_50 calls where appropriate.
  Untested, but at least it builds.

  Discussed with christos@
2009-01-17 15:50:12 +00:00
he
92c667768c Adapt to the state after the recent time_t change.
Type changes:
  timeval -> timeval50
  itimerval -> itimerval50
  rusage -> rusage50
and use of the compat_50 calls where appropriate.
Untested, but at least it builds.

Discussed with christos@
2009-01-17 15:48:06 +00:00
njoly
8ff5603c09 Regen for compat 50 update. 2009-01-16 13:12:35 +00:00
njoly
9554a2932f Update some syscalls that now needs compat50 timeval structure. 2009-01-16 13:10:47 +00:00
njoly
b615dfc4d8 Rengen for compat50 update. 2009-01-15 23:50:35 +00:00
njoly
7345858afe Update some syscalls/arguments to use the new compat50 equivalents. 2009-01-15 23:48:50 +00:00
christos
5a4537eb47 Emulate a couple more ioctls. Thanks to Matthias Drochner for pointing them out. 2009-01-15 20:32:59 +00:00
christos
ff90a0090a compat glue. 2009-01-15 18:19:23 +00:00
njoly
39f5db2b54 In rusage_to_rusage50() function, fix memcpy size to include last
struct member (ru_nivcsw) which was missing.

ok by christos.
2009-01-14 22:50:12 +00:00
pooka
09ba2d6689 Regen to prove I didn't screw up the conversion: purely RCSID changes. 2009-01-13 22:33:11 +00:00
pooka
5d19acad62 Regen to prove I didn't screw up the conversion: purely RCSID changes. 2009-01-13 22:33:08 +00:00
pooka
a9a2ce837b Convert the syscalls.master to a format from which it is easier
to parse and generate the compat name and basename (e.g. __stat50
and stat).  Use this to autogenerate __RENAME()'s to the rump_syscalls
header so that they can be called e.g. rump_sys_socket() instead
of rump_sys___socket30().
2009-01-13 22:27:43 +00:00
pooka
21eb48bd8e regen 2009-01-13 22:16:11 +00:00
pooka
b9e6895bec UNIMPL police (two mount syscalls with the same signature?!?) 2009-01-13 22:15:42 +00:00
pooka
5514331a78 regen after unimpl police to get comments right 2009-01-13 22:11:32 +00:00
pooka
7e02aa9486 UNIMPL 2009-01-13 22:10:58 +00:00
pooka
ef4e11410c regen 2009-01-13 22:08:59 +00:00
pooka
4180a41378 UNIMPL police 2009-01-13 22:08:30 +00:00
pooka
c2f114970c regen 2009-01-13 22:03:39 +00:00
pooka
70917e36da UNIMPL police 2009-01-13 22:03:12 +00:00
pooka
c3c68d936d regen: unimpl police 2009-01-13 22:00:48 +00:00
pooka
41d2f63e9a UNIMPL police 2009-01-13 21:57:55 +00:00
pooka
0b40ab56ee regen: UNIMPL police 2009-01-13 21:49:16 +00:00
pooka
c3a8bfb54e UNIMPL police: remove pseudo-prototypes 2009-01-13 21:48:35 +00:00
pooka
e0330adb61 regen 2009-01-13 21:20:29 +00:00
pooka
33883e2a6d Somehow i doubt linux_sys_recvmsg() returns size_t. Make it ssize_t.
(XXX: the actual implementation returns int)
2009-01-13 21:19:51 +00:00
pooka
0033abb5fc regen 2009-01-13 21:07:33 +00:00
pooka
a0ece03c2d Make one UNIMPL consistent with the rest: remove signature. 2009-01-13 21:06:47 +00:00
martin
90daabb504 Add a few missing includes, so the ifdefs work as expected. 2009-01-13 20:47:47 +00:00
pooka
bb5f9edebf regen for #include "opt_compat_netbsd.h" 2009-01-13 19:45:38 +00:00
rtr
f0916c9e83 use do_sys_mknod() instead of sys_mknod() to make this compile again.
ok'd by martin@
2009-01-13 11:35:24 +00:00
rtr
21e966491f actually commit syscalls.master this time
add back blank line between #include <sys/.. and #include <sys/compat/..
regen
2009-01-13 04:31:12 +00:00
rtr
b198a0fd79 regen for christos_time_t merge 2009-01-12 11:53:23 +00:00
mhitch
6ebe2c3a6d Compat a.out stat structures also need to use u_int32_t dev_t. 2009-01-11 22:54:16 +00:00
christos
91306aae6f fix lutimes. 2009-01-11 21:23:22 +00:00
tsutsui
9d90ca88ae Compat a.out stat structures should use compat struct timespec50.
Noticed by mhitch@.
2009-01-11 21:12:04 +00:00
christos
52ef6203ff *utimes should allow NULL tvp. 2009-01-11 20:46:53 +00:00
rumble
40019d9470 regen. 2009-01-11 20:00:14 +00:00
rumble
5e7d8a6495 Fix time_t change fallout. 2009-01-11 20:00:06 +00:00
nakayama
b964c01bff Regen for following christos-time_t merge. 2009-01-11 13:16:34 +00:00
nakayama
60d7add52e Follow christos-time_t merge. 2009-01-11 13:14:14 +00:00
tsutsui
8a2b8ba767 Regen from syscalls.master rev 1.64:
> Update for compat_50 stuff. (compile test only)
2009-01-11 13:00:25 +00:00
tsutsui
4f0ae35127 Update for compat_50 stuff. (compile test only) 2009-01-11 12:59:34 +00:00
tsutsui
a37c14b49c Regen from syscalls.master rev 1.72:
> Update for compat_50 stuff. (compile test only)
2009-01-11 12:45:46 +00:00
tsutsui
f318c9b526 Update for compat_50 stuff. (compile test only) 2009-01-11 12:44:47 +00:00
tsutsui
41e9d73c06 Regen from syscalls.master rev 1.31:
> Update for compat_50 stuff. (compile test only)
2009-01-11 12:27:23 +00:00
tsutsui
2f67cbfacc Update for compat_50 stuff. (compile test only) 2009-01-11 12:25:03 +00:00
tsutsui
348730301a <sys/syscallargs.h> requires <sys/sched.h> for cpuset_t. 2009-01-11 12:19:14 +00:00
cegger
378bd0b618 make this compile 2009-01-11 10:47:37 +00:00
christos
50728e7823 merge christos-time_t 2009-01-11 02:57:17 +00:00
christos
461a86f9bd merge christos-time_t 2009-01-11 02:45:45 +00:00
njoly
16cef148ad Restore expected FUTEX_WAIT behaviour with NULL timeout argument,
which was broken in my recent timespec cleanup/fix.
2009-01-08 12:46:23 +00:00
njoly
5affb2e50a Make sysctl(2) fails with ENOTDIR (instead of EINVAL) for invalid mib
vector length.
2009-01-05 09:33:19 +00:00
njoly
4f6a64a639 Restore struct sysctl padding member name, which was damaged during
__unused removal on arguments.
2009-01-05 09:18:27 +00:00
njoly
e85166daa8 Fix stime(2) inverted copyin arguments. 2008-12-29 22:21:49 +00:00
njoly
f22af7d53f s/syscallcarg/syscallarg/ in comments. 2008-12-29 14:33:40 +00:00
cegger
9b87d582bd kill MALLOC and FREE macros. 2008-12-17 20:51:31 +00:00
njoly
6b9fe0233d Regen for clock_nanosleep. 2008-12-12 23:38:13 +00:00
njoly
99688b74d2 Add clock_nanosleep syscall. 2008-12-12 23:36:18 +00:00
njoly
26a5edd122 Add some padding members to linux_msqid64_ds for 32-bit archs. This
fix msgctl(2) IPC_STAT|IPC_64 calls, at least, on i386.
2008-12-09 11:09:11 +00:00
njoly
bd398db254 Remove unused timeval_to_clock_t function, superseeded by CONVTCK
macro.
2008-12-08 11:52:35 +00:00
njoly
adf5b0a542 Regen for netbsd32_caddr_t removal. 2008-12-06 23:15:09 +00:00
njoly
e7377ec502 Cleanup; kill netbsd32_caddr_t use. 2008-12-06 23:14:03 +00:00
njoly
9321a67e19 Small setres{uid,gid} cleanup; there is no need to use a specific
handling for -1 uid values.
2008-12-06 23:01:32 +00:00
njoly
14e966b9e0 Regen for getres{uid,gid} syscalls. 2008-12-05 23:31:54 +00:00
njoly
533a52241a Add getres{uid,gid} syscalls. 2008-12-05 23:30:19 +00:00
ad
dc5f414733 PR port-amd64/40091 compat_linux32 module loading = panic due to missing syms 2008-12-03 12:51:11 +00:00
njoly
96d7b57e0f Regen for getdirentries fix. 2008-12-02 13:45:40 +00:00
njoly
488fb8373c Fix getdirentries(2) by not calling compat_43_sys_getdirentries, but
letting do its own job instead (native and osf1 dirent structure have
different member number and types).
2008-12-02 13:45:02 +00:00
njoly
d42a74a9ba Regen for sched_get_priority_{min,max}. 2008-12-01 14:19:45 +00:00
njoly
aba771042c Add sched_get_priority_{min,max} syscalls. 2008-12-01 14:18:44 +00:00
ad
1a85128fea COMPAT_ULTRIX does not work on vax because there are no hooks, but make
it compile anyway.
2008-11-24 11:19:53 +00:00
njoly
6d6fb02ffd Regen for getpgid. 2008-11-24 00:26:34 +00:00
njoly
010c8bc9c7 Add getpgid, needed for Tru64 4.0g ksh. 2008-11-24 00:25:30 +00:00
njoly
6709281d18 Move si_code definitions from MD to MI linux_siginfo.h, all archs
(except mips for 3 values) are identical.
While here, remove unused/unneeded LINUX__SI_CODE macro. Only the
lower 16-bits are used for userland si_code.
2008-11-23 23:48:48 +00:00
mrg
56585a9fd3 initialise a variable to avoid a GCC warning. 2008-11-23 00:15:13 +00:00
mrg
3b1d48844e regenerate 2008-11-22 23:14:01 +00:00
mrg
672c98ee5a implement netbsd32__sched_setparam(), netbsd32__sched_getparam(),
netbsd32__sched_setaffinity() and netbsd32__sched_getaffinity().
2008-11-22 23:13:38 +00:00
cegger
53d5928d58 make this compile 2008-11-21 20:53:28 +00:00
he
2df25715bb Need to include <sys/module.h> when using the MODULE() macro. 2008-11-21 19:55:38 +00:00
he
b9e9d5c919 Commit regenerated files after this change to syscalls.master:
sys_nfssvc() is actually only defined when NFSSERVER is defined,
not when only NFS is defined, according to sys/nfs/files.nfs.
Adapt accordingly.  Fixes build of amiga INSTALL kernel.
2008-11-21 15:15:31 +00:00
he
5ed8abf7d9 sys_nfssvc() is actually only defined when NFSSERVER is defined,
not when only NFS is defined, according to sys/nfs/files.nfs.
Adapt accordingly.  Fixes build of amiga INSTALL kernel.
2008-11-21 15:14:56 +00:00
tron
709a35c482 Make it possible to compile a kernel with COMPAT_NETBSD32 but without
COMPAT_40. This fixes PR port-amd64/39967.
2008-11-20 11:56:40 +00:00
ad
1ab7ca8fdc PR port-amd64/39964 modules/compat_linux: missing symbols on amd64 2008-11-20 09:26:06 +00:00
ad
11c98a4abf PR port-amd64 modules/compat missing symbols on amd64
Also, test for compat_??_machdep.c so we don't have to grow more ifdefs
in the makefile.
2008-11-20 09:22:57 +00:00
cegger
f20e076be5 take ecoff header for ecoff code. 2008-11-20 00:28:07 +00:00
cegger
89ba8d828a make this compile (for next68k) 2008-11-19 23:31:13 +00:00
cegger
20a167ec1c make this compile 2008-11-19 22:27:19 +00:00
cegger
3076d30653 make this compile for alpha 2008-11-19 22:02:21 +00:00
ad
c4d65a7c5e Additionally, set emul_netbsd_object=NULL after detaching it. 2008-11-19 21:29:25 +00:00
ad
5473327d60 compat_modcmd: emul_netbsd_object will be NULL if no exec has taken place
between load and unload of the compat module.
2008-11-19 21:27:54 +00:00
ad
e157b99c7c Regen. 2008-11-19 18:39:43 +00:00
ad
92ce8c6a3d Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
2008-11-19 18:35:57 +00:00
njoly
2b470c165e Regen for futex timeout argument cleanup/fix. 2008-11-19 13:11:15 +00:00
njoly
377975c175 futex(2) timeout argument cleanup/fix.
- Use `struct linux_timespec', converted to native structure.
- Ensure that provided values are correct.
- Replace timeval+tvtohz by tstohz.
2008-11-19 13:09:19 +00:00
njoly
d64736c6b8 noisy printf. 2008-11-18 15:25:13 +00:00
ad
7369e64e54 LINUX_GCC_SIGNATURE also matches NetBSD/i386 ELF binaries, so disable it. 2008-11-17 13:03:42 +00:00
martin
42cab0447c Make it compile 2008-11-16 15:17:05 +00:00
njoly
ef05808702 Do not call namei anymore, but use the result from the previous
emul_find_interp call instead. This make dynamic executables work
again under compat OSF1 (fix PR/39255).

ok by christos.
2008-11-15 00:49:53 +00:00
ad
57de28fac5 - Move some more compat code into sys/compat.
- Split 4.3BSD ifioctl stuff into its own file.
- Remove some ifdefs that include small fragments of vfs compat code
  which are difficult to relocate elsewhere.
2008-11-14 23:10:57 +00:00
ad
7dbfda5cca Unneeded ifdef 2008-11-14 15:56:17 +00:00
ad
7bd1ee08d6 Regen. 2008-11-14 15:50:01 +00:00
ad
18e73e1ebe Replace semid_t with intptr_t. No function change. This is a libc/kernel
private interface and so the name change should not affect any third
party code.
2008-11-14 15:49:20 +00:00
ad
c5122072aa _KERNEL_OPT 2008-11-14 13:10:33 +00:00
ad
a682ddf568 Make it build again. 2008-11-13 12:09:52 +00:00
ad
b11cbdbb9d compat_ossaudio module, so others can depend on it. 2008-11-13 10:05:52 +00:00
njoly
7712a0fc6c Regen for nanosleep(2) fix. 2008-11-12 18:09:22 +00:00
njoly
cf19223289 Fix nanosleep(2) on 64-bit archs. Do not call native nanosleep
syscall, but rather a modified version the will take care of `struct
timespec' conversions.
2008-11-12 18:07:40 +00:00
njoly
1eff3fc2c0 Add missing sys/syscall.h include for SYS_ptrace definition. 2008-11-12 15:22:18 +00:00
ad
0efea177e3 Remove LKMs and switch to the module framework, pass 1.
Proposed on tech-kern@.
2008-11-12 12:35:50 +00:00
wrstuden
ab61b53b27 Adjust the sleeps in lwpcache and lwpublk. Make them uninterruptable
for now. This will prevent signals from waking them. Adjust
exit_lwps() to explicitly add LW_SINTR to all of them, so that
the process exit code can wake them up.

This is needed as threads in both of these wait channels die once
they are woken. So they aren't interruptable in the typical sense.

I am now able to suspend & resume firefox successfully now.
2008-11-01 05:59:33 +00:00
wrstuden
04ca26c586 Tweak change to move SA support from userret() to lwp_userret().
1) Since we want to check for upcalls only once, take LW_SA_UPCALL
out of the while(l->l_flags & LW_USERRET) loop.

2) since the goal is to keep SA code out of userret() (and especially
all the emulations that include userret() but will never do SA),
ALWAYS set LW_SA_UPCALL when we set SAVP_FLAG_NOUPCALLS. Drop the
test for it in lwp_userret() since it will never be set bare.

3) Adapt sa_upcall_userret() to clear LW_SA_UPCALL if it's no longer
needed. If we have gained upcalls since sa_yield(), we will deliver
them next time around.

Tested by skrll at.
2008-10-28 22:11:36 +00:00
christos
e4b18f1168 populate init_thread_area. 2008-10-28 18:37:41 +00:00
jmcneill
af9ee6c291 Only call release_futexes if LINUX_NPTL 2008-10-28 11:42:30 +00:00
wrstuden
1698883b6a Ok. Some calls to sa_upcall() pass in an 'l' that is not the current
lwp. Our "no-upcall" flagging however accesses l_pflag, and so we
can't access l->l_pflag. So access curlwp for the no-upcall-blocking
part.
2008-10-27 16:52:04 +00:00
jmcneill
1b69e667f6 Need opt_multiprocessor.h for MULTIPROCESSOR definition. 2008-10-26 22:33:03 +00:00
christos
fbc6c6a8e6 changes from pengo that make initializing skype more reliable. 2008-10-26 20:46:05 +00:00
christos
3ce1cee82d regen. 2008-10-26 20:26:53 +00:00
christos
b5a45a5fad catch up with i386 changes. 2008-10-26 20:25:49 +00:00
christos
1b9e833438 multiprocessor fixes, from rmind 2008-10-26 20:22:01 +00:00
jmcneill
e143becdb6 linux_sys_get_robust_list: copyout the entire struct, not the size of the
pointer to it.
2008-10-26 19:13:16 +00:00
christos
1b618d0f6e use a symbolic constant instead of 6. 2008-10-26 17:57:49 +00:00
christos
60485d403e use GUGS_SEL instead of 3. 2008-10-26 17:42:37 +00:00
christos
68a065aac1 regen 2008-10-26 16:38:41 +00:00
christos
5dfa1e6b4a futex support fixes from FreeBSD via cube+pengo. 2008-10-26 16:38:22 +00:00
ad
49169f6211 Assert that the segment descriptors we generate for TLS will not allow
privilege elevation.
2008-10-26 11:02:14 +00:00
mrg
27498ba7bc if the interpreter is literally "/usr/libexec/ld.elf_so" or
"/libexec/ld.elf_so", try <path>-<machine32arch>.
2008-10-26 07:07:35 +00:00
christos
a893abf3f5 regen 2008-10-26 03:44:04 +00:00
christos
86f314b4bf don't forget the percpu stuff and load gs immediately. 2008-10-26 03:43:42 +00:00
christos
47ab401cc8 fix include order; machdep needs to be first for LINUX_NPTL to be defined. 2008-10-26 02:00:57 +00:00
christos
f6382710ee Add preliminary tls support for i386. Does not work yet. From FreeBSD. 2008-10-25 23:38:28 +00:00
apb
f46c1de7cb Use ${TOOL_SED} instead if plain sed in Makefiles. 2008-10-25 22:27:34 +00:00
njoly
d05df800a8 Do not use native_to_linux_si_code() outside LINUX_NPTL; until i
figure a better way to handle it.
2008-10-21 21:52:29 +00:00
njoly
beff3f7516 Remove LINUX_SI_xxx from MI siginfo.h, that should not have been
committed. Rather add them to amd64 MD header.
Fix compilation failures on non x86 archs.
2008-10-21 20:24:15 +00:00
njoly
db06152637 tkill/tgkill syscalls cleanup.
- Make both syscalls set si_code to SI_LWP (which will be converted to
  Linux SI_TKILL value). Fix thread some cancellation under NPTL
  emulation.
- Merge code in a new linux_do_tkill() function that will do its own
  job, instead of calling linux_sys_kill().
- Do only alter single tasks, by rejecting non positive tid/tgid
  values.
2008-10-21 13:36:28 +00:00
njoly
d7732b5cc7 Add native to linux siginfo si_code translation, mostly for negative
values. Adjust amd64 and i386 accordingly, not sure about aother archs
i can't test.
2008-10-19 09:44:31 +00:00
njoly
ea7b260958 g/c amd64 ifndef/endif. 2008-10-17 20:21:34 +00:00
njoly
d0b5229aea Remove unneeded linux_sigaction.c 2008-10-17 20:17:19 +00:00
wrstuden
27724c38ae Adjust locking on the sadata::sa_vps list. The main time we
walk the list, we're looking for a vp to do something with. We do
this in the signal code and in the timer code. The signal code already
runs with proc::p_lock held, so it's a very natural lock to use. The
timer code, however, calls into the sa timer code with a spinlock held.
Since proc::p_lock is an adaptable mutex, we can sleep to get it. Sleeping
with a spinlock is BAD. So proc::p_lock is _not_ the right lock there,
and something like sadata::sa_mutex would be best.

Address this difficulty by noting that both uses actually just read
the list. Changing the list of VPs is rare - once one's added, it stays
until the process ends. So make the locking protocol that to write the
list you have to hold both proc::p_lock and sadata::sa_mutex (taken
in that order). Thus holding either one individually grants read access.

This removes a case where we could sleep with timer_lock, a spinlock at
IPL_SCHED (!!), while trying to get p_lock. If that ever happened, we'd
pretty much be dead. So don't do that!

This fixes a merge botch from how I handled our gaining p_lock - p_lock
should not have simply replaced p_smutex.

While here, tweak the sa_unblock_userret() code for the case
when the blessed vp is actually running (on another CPU). Make its
resched RESCHED_IMMED so we whack the CPU. Addresses a hang I've
observed in starting firefox on occasion when I see one thread running
in userland and another thread sitting in lwpublk, which means it's on
the list of threads for which we need an unblocked upcall. This list is
one on which things should NOT linger.
2008-10-16 18:21:45 +00:00
cegger
968d25010f build fix: get prototype for membar_producer() 2008-10-15 10:05:07 +00:00
wrstuden
4fb41e761e Merge wrstuden-revivesa into HEAD. Catch some files that I forgot
to revive on HEAD in previous commit.
2008-10-15 06:52:38 +00:00
wrstuden
fc7511b00e Merge wrstuden-revivesa into HEAD. 2008-10-15 06:51:17 +00:00
njoly
2c98237db9 Fix linux32 siginfo si_signo value. Do not convert ksi_signo twice. 2008-10-09 23:03:45 +00:00
njoly
249f1f85c5 Regen. 2008-10-06 14:53:58 +00:00
njoly
33b4e768ba Cleanup. Reduce diffs against netbsd32 syscalls.master.
- Remove const keyword for pointer types.
- Update some argument types.
2008-10-06 14:53:01 +00:00
njoly
1b1270d3b5 Compat linux/linux32 nice(2) fix. The syscall argument is an increment
to be added to the current nice value, not an absolute value to be
set.
2008-10-03 22:39:36 +00:00
njoly
b6ef5a15fb Regen after cleanup. 2008-09-22 13:08:50 +00:00
njoly
2fedf4a0fb Kill a few linux32 syscalls identical to netbsd32 ones.
No functional changes expected.
2008-09-22 13:07:46 +00:00
christos
95ffbb8bc9 Define a PSL_CLEARSIG macro for the psl flags to be cleared on signal delivery
and use it everywhere.
2008-09-18 15:57:04 +00:00
scw
5a856ae120 In linux32_shmat() don't try to copyout a 64-bit pointer where userspace
is expecting a 32-bit result.

Fixes nspluginwrapper on amd64.
2008-09-17 20:11:51 +00:00
christos
96bd7a0192 make this compile again. 2008-09-08 15:31:19 +00:00
christos
ae6357afe4 fix broken linux32_sys_times, copied from linux_sys_times. 2008-09-08 11:29:42 +00:00
tron
0f256b9d59 Compile NetBSD/amd64 kernels with "-Wextra". Patches contributed by
Juan RP in PR port-amd64/39266.
2008-09-05 13:37:24 +00:00
njoly
46da4ade28 Make linux32 getdents(2) do its own job instead of calling the
corresponding compat linux function, where struct dirent members types
differs.
2008-09-04 17:45:00 +00:00
bjs
91b72f6613 'if (error = 0)' -> 'if (error == 0)' 2008-08-08 16:21:44 +00:00
plunky
772d60cfb9 convert some [left behind] compat code to use new sockopt API 2008-08-07 20:15:32 +00:00
plunky
fd7356a917 Convert socket options code to use a sockopt structure
instead of laying everything into an mbuf.

approved by core
2008-08-06 15:01:23 +00:00
jmcneill
551b501a8f linux_sys_rt_sigreturn: properly restore stack flags, pointed out by
Juan RP and modified by myself. ok christos@
2008-08-01 18:49:28 +00:00
njoly
a3adeaa5f9 Fix linux_sigismember/linux_sigaddset to work on amd64 (and other
64bits archs), by ensuring that bit shifts are done on correct type.
2008-07-30 16:05:26 +00:00
njoly
c1c4ce8861 Regen for rt_sigpending. 2008-07-24 12:11:14 +00:00
njoly
efde75ae99 Add rt_sigpending syscall. 2008-07-24 12:09:56 +00:00
njoly
066b9aabb5 Add linux32_getifconf, following recent linux_getifconf addition. 2008-07-23 12:32:09 +00:00
jmcneill
a9b5dcaa70 ioctl compatibility for v4l2 and drm 2008-07-19 23:01:52 +00:00
cegger
1ca90441b2 use device_xname 2008-07-17 13:39:50 +00:00
cegger
f2b690d08e remove redundant declaration of tvtohz(). It's declared in <sys/timevar.h>.
Makes i386 ALL kernel build again.
2008-07-17 13:35:07 +00:00
christos
aa389c698d Use more timespecs internally. From Alexander Shishkin and me.
Welcome to 4.99.70, 30 more to go for 100.
2008-07-15 16:18:08 +00:00
matthias
1797e3b14b make LINUX_TCSBRK work. The code is mostly copied from
sys/compat/ibcs2/ibcs2_ioctl.c.
2008-07-04 11:06:31 +00:00
matthias
1b4ed9ea4e make LINUX_TCSBRK work. The code is mostly copied from
sys/compat/ibcs2/ibcs2_ioctl.c.
2008-07-04 10:13:52 +00:00
njoly
153124ee21 Fix SIOCGIFCONF ioctl for 64bit platforms. Add a new linux_ifreq
structure and linux_getifconf function (cleaned up version from
compat_ifconf).

While here, update linux_getifhwaddr to use the new structure.

Ok by christos.
2008-07-03 14:07:09 +00:00
rmind
160268aca6 Remove proc_representative_lwp(), use a simple LIST_FIRST() instead.
OK by <ad>.
2008-07-02 19:49:58 +00:00
matt
7408df1239 Change {ff,fd}_exclose and ff_allocated to bool. Change exclose arg to
fd_dup to bool.  Switch assignments from 1/0 to true/false.

This make alpha kernels compile.  Bump kern to 4.99.69 since structure
changed.
2008-07-02 16:45:19 +00:00
njoly
06e75299f3 Move amd64 MD termois types definitions from linux_termios.h to linux_types.h
following other archs.
2008-06-29 08:50:09 +00:00
chris
d890fb22e6 Fix warnings about type conversions by using linux_speed_t type on
linux_speeds[] rather than speed_t.

On Arm (and others) linux uses unsigned long, however, NetBSD uses
unsigned int.
2008-06-28 21:34:32 +00:00
njoly
9084eed1a8 Add SIOCGIFHWADDR support.
Tested by Cem Kayali.
2008-06-27 12:38:25 +00:00
ad
a00bd89dab Replace references to getsock/getvnode. 2008-06-24 11:18:14 +00:00
gmcgarry
035e707304 ioctl commands are defined unsigned long, so cast cmd to unsigned long before comparison. 2008-06-24 10:03:17 +00:00
njoly
0fe964b56f Fix SIOCGIFCONF ioctl under compat linux32. 2008-06-24 09:00:04 +00:00
njoly
0237fe6def Update compat netbsd32 SIOCGIFCONF ioctls definitions to follow native
ones.
2008-06-23 23:14:42 +00:00
njoly
8cb9e382ae netbsd32_ifreq_tp_t should be of type netbsd32_pointer_t, not int32_t. 2008-06-22 22:40:15 +00:00
he
acba26b8f9 Commit regenerated files after adding include of <sys/sched.h>. 2008-06-21 19:59:09 +00:00
he
3824f75f83 <sys/sycallargs.h> needs <sys/sched.h> now. 2008-06-21 19:58:27 +00:00
tsutsui
cda67469e5 Regen from syscalls.master rev 1.69:
> Include <sys/sched.h> before <sys/syscallargs.h> for cpuset_t.
2008-06-21 13:22:04 +00:00
tsutsui
f1d9471407 Include <sys/sched.h> before <sys/syscallargs.h> for cpuset_t. 2008-06-21 13:20:46 +00:00
njoly
72a97d4bed Do not return 0 for unsupported/unknown futex operations, but ENOSYS
instead. From Roman Divacky in private email.
2008-06-20 11:38:26 +00:00
njoly
d1a60f16f0 Fix futex locking. Move all locking to linux_sys_futex function, and
KASSERT that futex_{get,put,sleep,wake} are now called with lock held.
2008-06-20 11:31:40 +00:00
christos
d83ff0cd7b an attempt at linux32_ioctl_socket(). 2008-06-19 16:09:25 +00:00
hans
58cba3df2d regen from syscalls.master r1.46 2008-06-19 12:29:34 +00:00
hans
c1b31bd183 include <sys/sched.h> for cpuset_t 2008-06-19 12:28:12 +00:00
hans
372b2ea344 regen from syscalls.master r1.35 2008-06-19 12:27:04 +00:00
hans
3a83008141 include <sys/sched.h> for cpuset_t 2008-06-19 12:24:22 +00:00
njoly
9cbea9441c linux32_sys_ptrace() fixes.
- Add opt_ptrace.h include to activate syscall.
- Convert to use sys_ptrace() instead of netbsd32_ptrace().
- Do not use arch specific call for now.
2008-06-18 22:58:21 +00:00
tsutsui
4482e41e15 Include <sys/sched.h> before <sys/syscallargs.h> for cpuset_t. 2008-06-18 12:24:17 +00:00
tsutsui
5ff92ba4da Regen from syscalls.master rev 1.62:
> Include <sys/sched.h> before <sys/syscallargs.h> for cpuset_t.
2008-06-18 12:23:06 +00:00
tsutsui
181592d5b7 Include <sys/sched.h> before <sys/syscallargs.h> for cpuset_t. 2008-06-18 12:21:20 +00:00
dogcow
8b20d17adf Regen. 2008-06-18 02:09:19 +00:00
dogcow
f76aab4a72 include sys/sched.h for cpuset-related build lossage 2008-06-18 02:08:36 +00:00
tsutsui
d7d2a525b1 Include <sys/sched.h> before <sys/syscallargs.h> for cpuset_t. 2008-06-17 16:17:21 +00:00
he
f776c48636 <sys/syscallargs.h> now needs <sys/sched.h> included for the cpuset_t type
declaragion, so comply with that so that this builds again.
2008-06-17 16:13:08 +00:00
christos
7a9a590e57 regen 2008-06-16 20:00:53 +00:00
christos
5f09cf30c9 an attempt at ptrace32 2008-06-16 19:57:43 +00:00
ad
f9e99b470b PPWAIT is now in proc::p_lflag. 2008-06-16 12:25:54 +00:00
njoly
d0c76a36cb In linux_sys_sendto, do not unconditionnally set MSG_NAMEMBUF to
msg_flags; add it only if a target adress was provided and needs to be
converted.
2008-06-11 13:02:00 +00:00
njoly
f7cecd2466 Do set mbuf in all cases, even for salen value of 0; otherwise this
will make a panic later when trying to free memory from a random
adress.

XXX Need to revisit it later to avoid mbuf allocation in this case.
2008-06-09 21:17:58 +00:00
njoly
80639b2f02 Add missing cv_destroy in futex_sleep. 2008-06-05 10:58:16 +00:00
njoly
e8822e5c92 When converting msqid_ds structure from/to netbsd32 for msgctl(2)
IPC_STAT/IPC_SET, do not try to fill private struct members
_msg_first/_msg_last which do not exists.
2008-06-02 14:12:08 +00:00
mrg
c2b95373bf remove clause #3 from my license where there are no other
copyright holders involved.
2008-05-29 14:51:25 +00:00
njoly
7cdbbcf80d Add LINUX_TMPFS_SUPER_MAGIC, and map it to our tmpfs.
This makes sem_open/sem_unlink (POSIX named semaphores) work under
NPTL emulation.
2008-05-28 12:01:10 +00:00
njoly
c188bc4dd4 Fix netbsd32_ipc_perm and netbsd32_shmid_ds structures to use correct
types.
2008-05-24 16:02:44 +00:00
njoly
e82000b55e Add IPC_64 support to msgctl, needed for amd64. 2008-05-21 11:15:57 +00:00
njoly
da21dc40ec Regen for ipc(2) syscall support. 2008-05-20 17:33:13 +00:00
njoly
84db622836 Add compat linux32 ipc(2) syscall support, for shared memory and
semaphores.
2008-05-20 17:31:56 +00:00
njoly
763d4d3608 Fix linux_sys_getres{uid,gid}16 arguments type in comment. 2008-05-20 15:48:24 +00:00
njoly
4c3e8d3656 Fix free() argument in linux_read_ldt. 2008-05-19 09:36:55 +00:00
martin
79eec0c146 Follow FreeBSD's rev 1.18 (by imp):
Replace (name) with Henric Vestergaard Draboel since it was clear that
this was just cut N paste and '(name)' doesn't make any sense.
2008-05-12 17:46:08 +00:00
jmcneill
9e5e643a12 Pull in machine/cpufunc.h for wrmsr definition. 2008-05-11 17:13:43 +00:00
wrstuden
97003b024b Oops. These are supposed to come alive on the branch, not the head. 2008-05-11 00:18:09 +00:00
wrstuden
dbbab92bc9 Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
2008-05-10 23:48:44 +00:00
tnn
503997e388 Try to adapt the usema driver to new select/poll world order.
Also fix build with DEBUG_IRIX defined.
Fixes PR port-sgimips/38367 and makes GENERIC build again.
Only build tested because something else is still wrong with compat_irix.
2008-05-10 12:57:18 +00:00
martin
b46765907d Minor typo in license 2008-05-10 11:49:37 +00:00
tnn
a1744e1285 Make it build, struct vfsops gained a member.
(Making compat_irix actually work again is a project for another day.)
2008-05-09 20:49:14 +00:00