Commit Graph

3908 Commits

Author SHA1 Message Date
dsl
a163d15464 This is deja vu - I fixed this earlier....
No need to use stackgap for ioctl to get PTM name, directly call file's
ioctl function with kernel buffer.
2007-05-13 16:04:00 +00:00
dsl
10b01b226a There is no need to copy data out to userspace when its address is being
passed to the driver as the ioctl 'data' argument.
Change boths parts to expect a kernel memory buffer.
2007-05-13 15:57:39 +00:00
dsl
06b3498b98 Fix compilation 2007-05-13 15:56:17 +00:00
dsl
dc41e5b5bd Change the way the irix 32bit signal mask request is done to avoid the
stackgap.  I'm actually susre this code is buggy, possibly slightly less
so than before.
2007-05-13 15:39:29 +00:00
dsl
959f589c73 This code is already set for directly calling a files ioctl fn with a
kernel buffer - so why not use it when getting the slave pty number.
2007-05-13 15:38:14 +00:00
dsl
9e2165cbd3 Time functions have had wrappers for ~ages, no need for the stackgap gere. 2007-05-13 14:47:54 +00:00
dsl
b8cecbd5b3 Delete fom stackgap lines that seem to have got left in. 2007-05-13 11:06:41 +00:00
dsl
2cc0d0a9c4 Stop using the stackgap for time functions. 2007-05-13 11:04:11 +00:00
dsl
9a585a457d Stop using the stackgap for timer functions, fcntl locks and FIONREAD ioctl.
Add code for X_LK_RLCK - seemed to be absent!
2007-05-13 11:03:06 +00:00
dsl
d4540f5b2a Call sigaltstack1() directly instead of using the stackgap to call
sys___sigaltstack14().
Prototype up some code under #if 0 to use sigaction1().
2007-05-13 09:07:25 +00:00
dsl
0a4e8a3014 Remove the stackgap from some more flockking code.
Note that I've removed the bug where this code 'forgot' to use copyin/out
for the stackgap buffers.
2007-05-13 08:38:34 +00:00
dsl
e3b7b0151e Rework the svr4_32 fcntl support (again).
Make the same changes to the svr4 code.
Add some 'missing' simple_unlock(&fp->f_slock) to the svr4_32 version of this
code. These files now compare if feed the svr4_32 copy though:
	sed -e 's/4_32/4/g;s/_P32//g'
Note in passing that the code paths that call simple_unlock(&fp->f_slock)
are completely broken.
2007-05-13 08:14:06 +00:00
dsl
701496b5c6 Split the fcntl locking code out from its copyin/out.
Use to avoid all the stackgap stuff in compat code.
2007-05-12 23:02:49 +00:00
dsl
8beba9d093 There is no need to use the stackgap for get/setrlimit. 2007-05-12 21:07:02 +00:00
dsl
ef3fdc4a07 Change interface to settimeofday1() so that it can also be used from
compat code in order to avoid the stackgap.
2007-05-12 20:27:13 +00:00
dsl
dd490a6f18 Get rusage directly, not via 64bit linux call and stackgap. 2007-05-12 20:24:54 +00:00
dsl
a08b772cae Fix comment and indent. 2007-05-12 20:23:36 +00:00
dsl
c0ac33ed01 Remember to call calcru() before using the rusage values. 2007-05-12 18:10:20 +00:00
dsl
c83f8a10ad Change the compat sys_[fl]utime code to not use the stackgap. 2007-05-12 17:28:19 +00:00
dsl
76bef02b3a Remove some more uses of the 'stackgap' - the code is a lot simpler if
we just access stuff like l->l_proc->p_stats->p_ru instead of copying it
to and from userspace.
2007-05-12 14:09:34 +00:00
rumble
18ae6034fe Make this compile again (untested). 2007-05-11 02:25:34 +00:00
christos
48f401a8e0 - linux uname -m on x86 returns i{3,4,5,6}86 make it so.
- delete the machine sysctl that never worked, and gc linux_machine.
2007-05-10 21:30:14 +00:00
christos
ef061fd462 move the #if 0 down a few lines so linux_machine gets initialized. Pointed
out by Joachim K�nig
2007-05-10 17:12:32 +00:00
dsl
1769aced1d Fix build. 2007-05-09 20:42:12 +00:00
dsl
99ec301ce3 Remember to copy the rusage to the users buffer. 2007-05-08 20:54:15 +00:00
dogcow
01b74015fe fixes from dsl for compile errors 2007-05-07 21:18:26 +00:00
dsl
1844147fa9 Split sys_wait4() so that compat code can fiddle with the returned 'status'
and 'rusage' without having to copy data to/from stackgap buffers.
The old split (find_stopped_child) could be removed.
amd64 seems to run netbsd32, linux and linux32 emulations. sparc64 compiles.
2007-05-07 16:53:17 +00:00
he
1276917b53 Remove now-unused declarations of "struct proc *p". 2007-05-07 14:13:00 +00:00
he
2751cf9440 Remove two local declarations of *p, now no longer needed. 2007-05-07 12:24:00 +00:00
christos
f844889627 Remove change that obviously was not tested (since it uses LINUX_KERN_VERSION
again, producing EEXIST). There is no machine sysctl in linux that corresponds
to this (at least on my i386 suse box)
2007-05-06 23:25:26 +00:00
rumble
c5e64595c9 Make this compile again after dsl's stackgap rototill. 2007-05-05 13:12:51 +00:00
dsl
92ab0cdf99 Always pick 'rusage' from p->p_stats->p_ru, p->p_ru is dead and gone. 2007-05-01 17:22:32 +00:00
dsl
dd85830e7b Include extra header (vfs_syscalls.h). 2007-04-30 20:20:28 +00:00
dsl
906b9af2a7 Rework compat stat() and statvfs() code so that it no longer uses the stackgap. 2007-04-30 14:05:47 +00:00
dsl
8932ebd238 Remove some unused calls to stackgap_init() 2007-04-30 09:20:18 +00:00
dsl
0df00dcf55 Split the statvfs functions so that the 'work' is done to a kernel buffer
which can either be copied directly to userspace, or converted then copied.
Saves replicating a lot of code in the compat functions (esp. for
getvfsstat) at a cast of an extra function call in the non-emulated case -
which is unlikely to be measurable given the other costs of the actions
involved (even on vax).
Remove dofhstat() and dofhstatvfs() (and the last caller).
Remove some redundant stackgap_init() calls.
2007-04-30 08:32:14 +00:00
dogcow
7d60d09883 and unbork some more changes. 2007-04-28 00:03:37 +00:00
dogcow
b4fa94e8ef fix unused variable fallout b0rkenness 2007-04-27 23:53:15 +00:00
dsl
9f6d43522e Pass the emulation root string into namei() from emul_find_interp() so that
the ktrace entries for lookups done during exec can have the full filename.
This is rather a hack :-)
2007-04-26 20:06:55 +00:00
matt
3af169362e Make this compile again (after stackgap removal) 2007-04-25 12:54:26 +00:00
dsl
461647c21e Update using no pecoff specific system call code. 2007-04-23 21:23:13 +00:00
dsl
ad5f09d13c Having removed all the CHECK_ALT_XXX() none of these syscall functions
do anything except call a standard function.  Nuke them all.
2007-04-23 21:22:29 +00:00
manu
262a61f00a Linux's uname should return x86_64 as machine_arch 2007-04-23 12:45:42 +00:00
christos
92ae584013 avoid zerodivide. 2007-04-23 00:13:14 +00:00
dsl
d0b9f67395 Delete a diagnostic printf and some unused 'stack gap' initialisation. 2007-04-22 14:10:30 +00:00
dsl
313aae0af3 Actually report an error when sys__stat30() fails. 2007-04-22 10:54:43 +00:00
dsl
b8fbaf8c4b Change the way that emulations locate files within the emulation root to
avoid having to allocate space in the 'stackgap'
  - which is very LWP unfriendly.
The additional code for non-emulation namei() is trivial, the reduction for
  the emulations is massive.
The vnode for a processes emulation root is saved in the cwdi structure
  during process exec.
If the emulation root the TRYEMULROOT flag are set, namei() will do an initial
  search for absolute pathnames in the emulation root, if that fails it will
  retry from the normal root.
".." at the emulation root will always go to the real root, even in the middle
  of paths and when expanding symlinks.
Absolute symlinks found using absolute paths in the emulation root will be
  relative to the emulation root (so /usr/lib/xxx.so -> /lib/xxx.so links
  inside the emulation root don't need changing).
If the root of the emulation would be returned (for an emulation lookup), then
  the real root is returned instead (matching the behaviour of emul_lookup,
  but being a cheap comparison here) so that programs that scan "../.."
  looking for the root dircetory don't loop forever.
The target for symbolic links is no longer mangled (it used to get the
  CHECK_ALT_xxx() treatment, so could get /emul/xxx prepended).
CHECK_ALT_xxx() are no more. Most of the change is deleting them, and adding
  TRYEMULROOT to the flags to NDINIT().
A lot of the emulation system call stubs could now be deleted.
2007-04-22 08:29:55 +00:00
njoly
44d4cbded2 Regen (ftruncate fix). 2007-04-20 13:38:20 +00:00
njoly
12a8f9478e Fix ftruncate syscall. Do not use compat_43_sys_ftruncate, but
compat_43_netbsd32_oftruncate instead.
2007-04-20 13:37:05 +00:00
ad
8aefa8aa0c Share the sysarch stuff between the x86 ports. PR kern/36046. 2007-04-16 19:12:17 +00:00