Commit Graph

385 Commits

Author SHA1 Message Date
manu d932075a0e Fixed a typo (two instructions dupliated at the end of code that were not reached) 2001-01-19 12:49:22 +00:00
manu e20b81421d Added Linux errno mapping for powerpc 2001-01-19 12:27:13 +00:00
manu 3c98a504b9 Added previously created files for powerpc Linux compatibility to the kernel
config system
2001-01-19 01:51:16 +00:00
manu 5472427809 Added powerpc specific code for Linux compatibility on powerpc ports 2001-01-19 01:36:47 +00:00
manu 3ec1257260 Added various header files for initial Linux compatibility on powerpc ports 2001-01-19 01:31:23 +00:00
jdolecek 34c8ae80da constify 2001-01-18 20:28:15 +00:00
jdolecek e912e655e1 kill local declaration of native_to_linux_errno[], one in common/linux_errno.h suffices 2001-01-18 18:41:20 +00:00
tv e58532a4bf No-op commit to force update to a non-"-kk" revision. 2001-01-18 17:47:58 +00:00
fvdl 6784825249 EINVAL -> ENOTTY 2001-01-18 13:56:32 +00:00
fvdl c99aee0084 Add emulation of KIOCSOUND. 2001-01-09 13:01:03 +00:00
fvdl bcac62574c Implement KDGETMODE ioctl. 2000-12-29 22:06:58 +00:00
fvdl 1b9256990d Regen. 2000-12-29 20:11:52 +00:00
fvdl 17f991c744 Don't pass through link(2) directly, as we need to do altpath checks. 2000-12-29 20:11:32 +00:00
fvdl 1575b3e35a Regen. 2000-12-29 20:10:46 +00:00
fvdl cc449a70ed Don't pass through link(2) directly, as we need to do altpath checks. 2000-12-29 20:10:17 +00:00
fvdl e8e363d309 Regen. 2000-12-29 20:09:57 +00:00
fvdl 54450b21c0 Don't pass through link(2) directly, as we need to do altpath checks. 2000-12-29 20:09:39 +00:00
fvdl b930296d07 Under Linux it's possible to return values through the ioctl system
call directly (i.e. not a reference argument, but a direct return
value). So far I have only seen this with binaries that talk
to their own device modules, using non-standard ioctl calls.
Hence, allow for a pass-through ioctl call using PTIOCLINUX to
return EJUSTRETURN, signalling that the return value is in
the 'data' field of the structure, which can then be put in 'retval'.
2000-12-29 20:07:25 +00:00
sommerfeld 5217f6335b Let COMPAT_LINUX build with DEBUG 2000-12-27 23:47:58 +00:00
fvdl 7fbbc11d9c Regen. 2000-12-27 22:04:35 +00:00
fvdl 7cd004ead8 Add all uid and gid calls, and do the right thing for the older 16 bit
ones.
2000-12-27 22:04:05 +00:00
fvdl 41e840d9c7 Regen. 2000-12-27 22:03:10 +00:00
fvdl 11156e7e47 Add all uid and gid calls, and do the right thing for the older 16 bit
ones.
2000-12-27 22:02:41 +00:00
itohy 811fede455 Regen. 2000-12-26 01:57:57 +00:00
itohy 4aee4579ba Declare linux_sys_setgid16() (NOARGS -> STD).
Change syscall #182 from linux_sys_lchown() to linux_sys_lchown16().
2000-12-26 01:57:10 +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
thorpej 7027166972 Regen. 2000-12-21 20:42:42 +00:00
thorpej c0b556f767 Make an Alpha kernel with COMPAT_LINUX compile again. 2000-12-21 20:42:15 +00:00
fvdl 3259cebc4c For unknown ioctls, pass them through to a device using PTIOCLINUX,
so that it may deal with them if it knows them (i.e. LKMs which
deal with Linux binaries).
2000-12-18 14:47:38 +00:00
fvdl 0bda0568cf Regen. 2000-12-18 14:37:36 +00:00
fvdl 41623d32a2 Update for Linux calls with 32 bit uids/gids. 2000-12-18 14:37:17 +00:00
fvdl 8839755950 Update for 32 bit Linux uid/gid calls. 2000-12-18 14:36:35 +00:00
jdolecek 29fd738f28 make LKM safe 2000-12-17 16:15:54 +00:00
scw 7fb03460dc Sprinkle some register prefixes in the asm() statements. 2000-12-16 22:59:32 +00:00
jdolecek 5f0114a837 regen 2000-12-14 20:39:36 +00:00
jdolecek 14b2acc126 add sysinfo() 2000-12-14 20:37:57 +00:00
mycroft bdf4af93a3 Some namespace hiding I forgot before. 2000-12-14 18:10:35 +00:00
mycroft ccaa88d980 Declare linux_syscall_intern(). 2000-12-14 18:10:14 +00:00
mycroft b8d0fc574a Regen. 2000-12-14 18:08:09 +00:00
mycroft 52e8ecc51c Round up sysent[] table size. 2000-12-14 18:07:54 +00:00
augustss 8dab2a36e1 Regen. 2000-12-13 21:42:21 +00:00
augustss b907acd3fd Add sysinfo. 2000-12-13 21:41:46 +00:00
itohy 3e9f9f8abf sync with i386, so that exec_conf.c compiles again 2000-12-13 03:49:51 +00:00
jdolecek e60b4a518d regen 2000-12-12 22:23:47 +00:00
jdolecek 405a6ce62f actually, we need to wrap sys_truncate() call so that the /emul/linux/...
path is tried first
fix ftruncate64 entry - first arg to ftruncate is int fd, not path
2000-12-12 22:23:02 +00:00
jdolecek 621dac5bc2 define struct linux_stat64 used by linux_sys_*stat64() 2000-12-12 19:07:59 +00:00
jdolecek c3dd514d84 regen 2000-12-12 19:03:10 +00:00
jdolecek daff00c255 add emulation of Linux truncate64(2), ftruncate64(2), *stat64(2) 2000-12-12 19:01:59 +00:00
fvdl 0b7398458a Allow for passing through of certain ranges of ioctl command values
directly to a device. The device has to be aware of how to handle
with these special ioctls. Useful for LKMs that deal with Linux
binaries.
2000-12-12 15:11:56 +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
mycroft fef5184d84 Regen. 2000-12-11 04:56:01 +00:00
mycroft fc774b14ce getuid -> getuid_with_euid
getgid -> getgid_with_egid
2000-12-11 04:55:50 +00:00
mycroft 75fbdc005e Nuke LINUX_MACHDEP_PASS_PPID. 2000-12-11 04:55:09 +00:00
mycroft cfe0002fc5 Regen. 2000-12-11 04:54:29 +00:00
mycroft 6d0c28a87c getpid -> getpid_with_ppid 2000-12-11 04:54:13 +00:00
mycroft e99a608974 Regen. 2000-12-11 03:09:10 +00:00
mycroft c0341b165d Round up sysent table size. 2000-12-11 03:09:02 +00:00
thorpej a1479e118c Fix previous:
- EBADF, not NULL when a file descriptor can't be found.
- Check FIF_WANTCLOSE properly.
2000-12-10 17:34:25 +00:00
fvdl e772d7a6d5 Add i386-specific code for a few ioctl calls. 2000-12-10 14:09:59 +00:00
fvdl 8488f3e039 The gist of the Linux _IOX definitions was the same for all platforms;
move it to the MI linux_ioctl.h and only leave the MD bits in the MD
header files.
2000-12-10 14:07:22 +00:00
christos 835b5d35c5 how many different prototypes does linux_syscall() need finally? sheesh! 2000-12-09 19:51:44 +00:00
jdolecek 415500a28f regen 2000-12-09 12:27:00 +00:00
jdolecek c557c9f0f9 add more unimplemented syscalls to list 2000-12-09 12:23:35 +00:00
mycroft f348afacb9 Regen. 2000-12-09 05:37:01 +00:00
mycroft d47448bce6 Add the %% separators. 2000-12-09 05:31:10 +00:00
mycroft 9682cf0b09 Add the %% separators. 2000-12-09 05:27:28 +00:00
jdolecek 6f4041b981 regen after addition of linux_sys_swapoff() 2000-12-02 16:45:51 +00:00
jdolecek 1acf11b550 add emulation of linux swapoff(2) 2000-12-02 16:43:50 +00:00
jdolecek da1aefe9bf if machdep define LINUX_MACHDEP_HAS_SEPARATED_SYSCALL is defined, put
linux_syscall() to emul_linux
define LINUX_MACHDEP_HAS_SEPARATED_SYSCALL for i386
2000-12-02 16:05:04 +00:00
jdolecek 31cf7b914c regen 2000-12-01 21:11:02 +00:00
jdolecek 058a5a87bd replace compat_09_sys_setdomainname() with linux_sys_setdomainname(),
compat_12_sys_swapon() with linux_sys_swapon() - this is to drop dependency
on COMPAT_12/COMPAT_09
2000-12-01 21:02:55 +00:00
jdolecek b490742cef if LINUX_MACHDEP_PASS_PPID_AND_EUID is defined for given arch, add
flags EMUL_GETPID_PASS_PPID|EMUL_GETID_PASS_EID to emul_linux
define this option for alpha
2000-12-01 20:31:13 +00:00
jdolecek 73f3cd8c7e LKMify 2000-11-29 21:51:49 +00:00
jdolecek 872ef3b1fb don't use linux_emuldata for now, so that this compiles after
rev 1.2 of compat/linux/common/linux_emuldata.h
2000-11-27 22:23:09 +00:00
jdolecek ad1c55c73b implement PTRACE_{GET|SET}FPREGS and framework for PTRACE_{PEEK|POKE}USER
this makes it possible to attach to linux process with linux gdb and
see top-most function on traceback; lower functions are not available,
probably due to bad frame setup
it's not possible to setup breakpoints - Linux gdb uses hw breakpoints,
so support for them would need to be written
2000-11-21 12:28:15 +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
erh 7d91e4941a Regen. 2000-11-17 03:58:01 +00:00
erh f96aee80d6 Make the linux compatibilty code work on the alpha. (horay!) (at last!)
Two main changes:
	Create a linux_elf64_copyargs that uses the linux specific LinuxAuxInfo
	structure.  This is only used on the alpha.  i386 and m68k use the
	standard elf copyargs function.

	Since linux's approach to binary compatibilty is to look as much
	like osf1 as possible, add all the osf1 syscalls that we have
	implemented to the linux syscall table.  This includes get/setsysinfo,
	ported from FreeBSD.

In order for linux compat to work you must have COMPAT_OSF1, COMPAT_43,
COMPAT_09, COMPAT_12 and COMPAT_13 on also.
2000-11-17 03:55:17 +00:00
jdolecek 78b866e95a change the type of *syscallnames[] array to 'const char * const foo[]' 2000-11-13 21:32:15 +00:00
erh 1f16400706 Update the names of some unimplemented syscalls to match what linux calls them. Match const in parameters to our sys_writev. 2000-11-08 04:19:00 +00:00
jdolecek 8d9bc8494c move definition of LINUX_PTRACE_{SET|GET}(FP)REGS flags to
sys/compat/linux/common/linux_ptrace.h, they seem to be actually MI
2000-11-01 21:02:08 +00:00
jdolecek a6a1220287 regen 2000-11-01 20:43:56 +00:00
jdolecek 27d3e13121 support mlockall(), munlockall() - they are same as respective NetBSD syscalls 2000-11-01 20:38:49 +00:00
erh 5b09e159e7 Add sys/proc.h so this compiles. 2000-10-16 03:18:04 +00:00
itohy a1a00824e1 Regen. 2000-08-31 03:49:44 +00:00
itohy e2319847de Add linux_sys_sigaltstack(). 2000-08-31 03:46:30 +00:00
christos 7f6c062b21 regen 2000-08-23 17:01:20 +00:00
christos 303ab3ee07 add support for syscall 186 [sigaltstack] 2000-08-23 16:59:51 +00:00
cgd 0199b04bef update for changed makesyscalls.master 2000-08-18 19:35:15 +00:00
cgd 287e8a9edf update for new makesyscalls.sh, and also for correct ids for changed
syscalls.master files.  (you need to regenerate after checking in
syscalls.master to get the correct ids.)
2000-08-18 19:19:50 +00:00
mrg c48063facd remove include of <vm/vm.h> 2000-06-29 02:40:37 +00:00
mrg 89d0a3e519 remove redundant vm includes. 2000-06-26 14:38:50 +00:00
veego 92c3e3856b Fix a comment. 2000-06-11 09:21:16 +00:00
veego 589a5222ec Remove the pcvt support. 2000-06-11 09:19:27 +00:00
jhawk 78732e454b Remove conditionization upon XSERVER -- all the code
so conditionalized is already conditionalized on (NWSDISPLAY > 0),
so is wscons-specific. wscons has no conditionalization on XSERVER;
neither should the linux compatibility code.

Removing this is necessary to keep linux X server emulation functionining
after GENERIC rev 1.337 removing "options XSERVER" (relegating it
to the pccons/pcvt-specific, and therefore depricated).
2000-05-15 01:12:07 +00:00
augustss a82aeb5508 Kill register declarations. 2000-03-30 11:24:16 +00:00
erh 24d8dabec4 Regen. 2000-03-20 00:50:45 +00:00
erh c21d536f5d sys_clone isn't MD on linux. 2000-03-20 00:50:14 +00:00
erh 1d34297aae Regen. 2000-03-18 23:53:38 +00:00
erh 38cf426930 Fix the msgrcv prototype. 2000-03-18 23:53:24 +00:00
erh 0174e6759b Add sigset_t parameter to restore_sigcontext, created by the sigreturn functions. linux_sigreturn still needs to use frame->extramask.
In setup_linux_rt_sigframe copy the signal mask to both possible locations.
2000-03-18 23:45:41 +00:00
erh 224f92b651 Pass a signal mask to restore_sigcontext. 2000-03-18 23:40:56 +00:00
erh c7a82169cc Regen. 2000-03-18 22:46:53 +00:00
erh 2648835399 Use the new linux_sys_reboot and linux_sys_connect. 2000-03-18 22:46:27 +00:00
erh 528f8305be Regen. 2000-03-18 22:21:02 +00:00
erh f3ae1c7294 Use linux_sys_reboot instead of sys_reboot. 2000-03-18 22:20:57 +00:00
erh 035c694c67 Regen. 2000-03-18 22:16:56 +00:00
erh dd9cf0df56 Use linux_sys_reboot instead of sys_reboot. 2000-03-18 22:16:46 +00:00
erh a159733250 Regen. 2000-03-18 20:44:01 +00:00
erh 50ef430f08 resync NOARGS lines with their definitions in kern/syscalls.master. resync STD lines with what is expected in .c files. (especially wrt adding const). Add missing prototype for setfsuid. Fix ptrace prototype. 2000-03-18 20:43:33 +00:00
abs 052fdc75bc regen 2000-02-03 10:22:34 +00:00
abs 89c5ba9f00 Add Linux fsuid system calls - from Witold J. Wnuk in PR kern/9335 2000-02-03 10:02:59 +00:00
tron 885afa5fce Regen. 1999-12-16 15:13:41 +00:00
tron 764eda2f33 Add ptrace(2). 1999-12-16 15:13:01 +00:00
tron 62397f55ef Add support for reading and writing non FPU register with ptrace(2). 1999-12-16 15:11:19 +00:00
tron f5dfa6e4a0 Support a few more request types in ptrace(2) emulation. 1999-12-12 01:30:49 +00:00
tron df8ccb921c Regen. 1999-12-12 00:00:42 +00:00
tron 0f4ddbec23 Incomplete but already working emulation of Linux's ptrace(2) for i386. 1999-12-12 00:00:16 +00:00
tron d5ed9dc998 Regen. 1999-12-05 21:26:36 +00:00
tron c65011886d Fix incorrect system call number. 1999-12-05 21:25:36 +00:00
tron ea2517e20d Add proper stub code to make emulation of Linux's pread(2) and pwrite(2)
work. Fixes PR kern/8945 by Dave Sainty.
1999-12-05 21:24:28 +00:00
tron a3dbb6bba5 Regen. 1999-12-04 22:14:52 +00:00
tron 8b5f9298fa Consistently call signal number arguments "signum". 1999-12-04 22:14:14 +00:00
tron 9bf4ab219a Correct signal array size. 1999-12-04 21:41:53 +00:00
tron cd4ab88255 Extend signal mapping array to 64 entries like in the i386 emulation. 1999-12-04 21:38:57 +00:00
thorpej 2859f66b8f Add register prefixes. 1999-11-11 01:27:59 +00:00
fvdl 6c6e28d62b Handle the newer, larger sigset_t Linux now uses. 1999-10-04 17:46:37 +00:00
tron c81bdfafa8 Regen from "syscalls.master". 1999-10-04 16:57:10 +00:00
tron 9b451861b9 Add emulation for scheduler related syscalls. Although they are dummies
even under Linux the posix thread library for "glibc2" requires them.
1999-10-04 16:55:54 +00:00
chs f3a668ed84 eliminate the PMAP_NEW option by making it required for all ports.
ports which previously had no support for PMAP_NEW now implement
the pmap_k* interfaces as wrappers around the non-k versions.
1999-09-12 01:16:55 +00:00
tron 14cc7c79c1 Regen. 1999-08-16 19:13:29 +00:00
tron 327a8cdf75 Add stime() to syscalls table. 1999-08-16 19:13:01 +00:00
thorpej dd623ce325 Regen. 1999-05-14 18:44:15 +00:00
thorpej a03622b33f Emulate the Linux vfork(2) (which is like NetBSD's __vfork14(2)),
{get,set}resuid(2), and {get,set}resgid(2).  Note a few more system
calls that we don't yet emulate.
1999-05-14 18:43:58 +00:00
thorpej 5f1b28961e Regen. 1999-05-14 18:43:20 +00:00
thorpej e0a6808cef Emulate the Linux vfork(2) (which is like NetBSD's __vfork14(2)),
{get,set}resuid(2), and {get,set}resgid(2).  Note a few more system
calls that we don't yet emulate.
1999-05-14 18:43:01 +00:00
thorpej 64d90992b4 Regen. 1999-05-14 18:41:20 +00:00
thorpej ba8fcafa16 Emulate the Linux vfork(2) (which is like OSF/1 vfork(2) and NetBSD's
__vfork14(2)) and {get,set}resuid(2).  Linux does not have {get,set}resgid(2)
on their Alpha port!
1999-05-14 18:39:38 +00:00
thorpej 087adcea52 Regen. 1999-05-13 23:43:15 +00:00
thorpej fa1c5fed1a Emulate the Linux clone(2) system call. 1999-05-13 23:42:34 +00:00
kleink 6a9c669828 Move linux_reenter_syscall() to a common location and rename it to
reenter_syscall() - it's going to be shared with COMPAT_SVR4 and soon be
used by native code.
1999-04-19 20:58:37 +00:00
tron ab9ea90a8e Regen. 1999-03-30 07:37:58 +00:00
tron b46e8732dd Add poll() emulation. 1999-03-30 07:29:05 +00:00
abs bb2d7dd6dc Regenerate (with poll()) 1999-03-30 02:25:32 +00:00
abs 9c2ef08c3e Since NetBSD has poll(), use it.
Linux oracle install now gets far enough that I want our DBA around to
see if we can finish the job.
1999-03-30 02:22:49 +00:00
tron 82f6a3397b Regen. 1999-03-27 01:15:58 +00:00
tron 5b98b641a8 Add emulation for Linux "getcwd" syscall. 1999-03-27 01:10:56 +00:00
mrg d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
thorpej 9d49c8139a Regen; pread(2) and pwrite(2). 1999-03-23 03:01:48 +00:00
thorpej e8a3256e7f Add support for emulating the Linux pread(2) and pwrite(2) system calls;
just call the native NetBSD versions.

PR #7202, Jaromir Dolecek <dolecek@ics.muni.cz>.
1999-03-23 03:00:51 +00:00