Commit Graph

712 Commits

Author SHA1 Message Date
fvdl b7ffc98bf8 Fix pasto in previous. 2000-12-18 16:27:20 +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 865e7b1375 Pass SIOC* calls that are done on devices (not sockets) through
without trying to interpret done, as is done on Linux. The device
will get them as PTIOCLINUX, with command and arg in the structure
passed in.
2000-12-18 14:46:36 +00:00
fvdl 8578d458e5 Define LINUX_SIOCDEVPRIVATE (currently not emulated for sockets). 2000-12-18 14:44:44 +00:00
fvdl 4d193ccde8 Add seperate entries for 16 bit uid/gid calls, so that border cases
like 0xffff can be handled better (not done yet).
2000-12-18 14:40:02 +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
mycroft b29180b2ff Tighten up the ELF signature checks, and actually look for the ABI tag added
in newer glibc versions.
2000-12-15 06:14:21 +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
augustss ccf2c891cc Implement sysinfo. 2000-12-13 21:41:23 +00:00
itohy 3e9f9f8abf sync with i386, so that exec_conf.c compiles again 2000-12-13 03:49:51 +00:00
jdolecek 638d27777e add linux_sys_truncate64() 2000-12-12 22:24:56 +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
jdolecek f8d1770316 define EXEC_AOUT (if not defined) before including linux_syscallargs.h,
to get linux_sys_uselib() prototype
2000-12-12 17:52:56 +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 a499e56944 Add some ioctls for harddisk, floppy disk and console handling.
Implement a few extra cdrom ioctl calls.
Make sure to correctly use FILE_USE and FILE_UNUSE.
2000-12-10 14:12:16 +00:00
fvdl e772d7a6d5 Add i386-specific code for a few ioctl calls. 2000-12-10 14:09:59 +00:00
fvdl ec9b1e3f5e 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.

Add defintions for linux_ioctl_hdio and linux_ioctl_fdio.
2000-12-10 14:08:48 +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
fvdl f86f1f091f Add linux_hdio.c and linux_fdio.c 2000-12-10 14:05:54 +00:00
christos 835b5d35c5 how many different prototypes does linux_syscall() need finally? sheesh! 2000-12-09 19:51:44 +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
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 445c16b759 implement linux_sys_setdomainname()/linux_sys_swapon(), using code
from compat_09_sys_setdomainname()/compat_12_sys_swapon().
2000-12-01 21:14:42 +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 011229ffcb make LKM safe 2000-12-01 18:16:54 +00:00
jdolecek 798f64c85b put linux_sys_uselib() to separate file linux_uselib.c 2000-12-01 13:49:35 +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
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 a53687b13e (de)allocate linux emuldata on fork/exec/exit as needed 2000-11-21 12:23:29 +00:00
jdolecek 33d7a60ccc comment out ps_siginfo from struct emuldata for now, add int debugreg[8]
update comment a bit
2000-11-21 12:21:43 +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
erh dad312de14 Provide some more useful information. 2000-11-17 03:40:25 +00:00
onoe 1e584c9cec Adopt the recent change to makesyscalls.sh (char * -> const char * const)
to make kdump compilable for arch without linux emulation.
2000-11-15 08:34:03 +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 7b1d98353d Linux LINUX_PTRACE_SINGLESTEP operation should have same
semantics as NetBSD's PT_STEP, so support it on archs which have it
under Linux, ptrace(PTRACE_CONT, pid, 0, 0) is used to continue the
traced process where it left off; adjust addr to (caddr_t) 1 so that
the NetBSD syscall code DTRT
some sligh const poisoning
2000-11-01 20:56:30 +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
fvdl 7f5724ad4c In the case of MAP_ANON, Linux mmap ignores the fd argument completely.
So, always pass -1 to the native syscall in that case, to avoid
errors if a Linux app doesn't specify -1 as the fd (which some do).
2000-09-07 22:20:45 +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
sommerfeld 6b88a0fc51 Emulation stackgap sanity checks, based partly on fixes from
FreeBSD-SA00:42.

Change stackgap_alloc to bounds-check the allocation vs. the stack
gap, returning NULL if there isn't room for the allocation.

Change emul_find() to check for a NULL return from stackgap_alloc()
and convert that into ENAMETOOLONG.

Reorder various emulation syscalls so that all *_CHECK_ALT_{EXIST,CREAT}
calls (which turn into emul_find() under the covers come *after* small,
fixed-size stackgap_alloc() calls.

Clean up ibcs2 {get,set}groups.
2000-08-29 14:33:25 +00:00
thorpej 4db6fc7542 Make need_resched() take a "struct cpu_info *" argument. This
causes gives a primitive form of processor affinity.  Its use in
roundrobin() still needs some work.
2000-08-25 01:04:06 +00:00
christos e2bcf6b0b5 add support for sigaltstack(2) needed for jvm-1.3 support.
XXX: Only on i386, don't have access to other linuxes...
2000-08-23 17:02:18 +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
tv 1d8f5f2ea3 Pretend to do something useful (just fill in oldsigaction with SIG_IGN and
zeroes) if the mapped signal number comes up zero.  Previously, sigaction1()
would return an error, confusing some linux apps trying to set handlers for
"all" signals.
2000-08-09 20:20:49 +00:00
itohy 3630c53733 Add #include <sys/proc.h>, since this file touches members of struct proc. 2000-08-07 02:51:04 +00:00
tron 597ed25d3d Adoid excessive use of "return" in "excessive()". 2000-07-28 21:49:09 +00:00
tron db4919f6b7 Use "NULL" and not "0" for null pointers. 2000-07-28 21:38:44 +00:00
thorpej c55e09bd44 Add a comment about the hzto() return value. 2000-07-13 17:32:06 +00:00
mrg c48063facd remove include of <vm/vm.h> 2000-06-29 02:40:37 +00:00
mrg f4e210fb2c remove redundant vm includes 2000-06-26 15:26:35 +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
thorpej e03e9e8086 Rather than starting init and creating kthreads by forking and then
doing a cpu_set_kpc(), just pass the entry point and argument all
the way down the fork path starting with fork1().  In order to
avoid special-casing the normal fork in every cpu_fork(), MI code
passes down child_return() and the child process pointer explicitly.

This fixes a race condition on multiprocessor systems; a CPU could
grab the newly created processes (which has been placed on a run queue)
before cpu_set_kpc() would be performed.
2000-05-28 05:48:59 +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
thorpej 33e0776eda Remove junk after #undef. 2000-05-03 21:41:43 +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
chs ef20427f07 sparc -> __sparc__ 2000-04-10 01:22:44 +00:00
augustss a82aeb5508 Kill register declarations. 2000-03-30 11:24:16 +00:00
simonb 2f1fef39b3 Centralise the declarations of cpu_model, machine, machine_arch,
osrelease, and ostype and remove "extern char foo[];" (for hostname
and domainname too).

Also delete redunctant decl of boottime in kern_info_43.c.
2000-03-28 23:57:24 +00:00
thorpej 7b918b4088 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 06:40:33 +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 9db5981a04 Add linux_sys_reboot. 2000-03-18 22:23:13 +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 34b72dcf4a Add defines for linux_sys_reboot. 2000-03-18 22:01:02 +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
erh fa21d7879c Adjust linux_sys_ptrace_args to reflect inconsistencies across ports. Temporarily ifndef alpha around getfsuid since Linux/alpha doesn't seem to have it. 2000-03-18 20:42:14 +00:00
soren 95054da1a1 Fix doubled 'the's in comments. 2000-03-13 23:52:25 +00:00
abs 7ff31fc326 Update patch from Witold Wnuk in PR 9335 to solve potential security
issue noted by tls.
2000-02-17 12:34:26 +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
jdolecek 600be45ffc Improve emulation of SIOCGIFHWADDR ioctl:
* when finding an interface, try the real name first before faking eth*
 * Linux kernel returns ENODEV if the request goes to unknown interface,
   so do the same here

This change makes Linux ICA client work.

Patch sent by Zdenek Salvet <salvet@ics.muni.cz> in kern/9169.
2000-01-12 17:19:11 +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 4aec38a7db Move MI parts of ptrace(2) emulation to "linux_misc.c". 1999-12-16 15:09:49 +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 c3ce0bc384 Architecture independent definitions for Linux's ptrace(2) system call. 1999-12-11 23:57:48 +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 9b847640c3 Add bound checks in emulation of kill(2). This fixes the last part of
PR kern/8904 by Dave Sainty.
1999-12-04 22:26:52 +00:00
tron 96fdbb96a8 Add bound checks in emulation of sigaction(2). This fixes a part of
PR kern/8904 by Dave Sainty.
1999-12-04 22:21:12 +00:00
tron 60e5eb1dd2 Fix typo in last commit. 1999-12-04 22:17:43 +00:00
tron f8a4b15b1c Adapt to renamed system call argument. 1999-12-04 22:15:57 +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 f8df357a47 Add bound checks in emulation of signal(2) and return SIG_ERR on failure.
This fixes a part of PR kern/8904 by Dave Sainty.
1999-12-04 22:08:36 +00:00
tron 5bc798bb82 Allow signal numbers upto 63 in clone(2) emulation. 1999-12-04 21:58:05 +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
erh 5779957787 undo confusion. 1999-11-02 08:02:43 +00:00
mycroft e45ef6abcd Emulate the Linux DVD_* ioctls(2). This gets us 90% of the way to running the
LiViD DVD player.  (See forthcoming mail to current-users.)
XXX NOTE: We should do something to probe capabilities, rather than allowing
these ioctls on any device.
1999-10-29 15:02:56 +00:00
kleink 522cbf0248 Update to match new SVR4-style definition names in <sys/exec_elf.h>. 1999-10-25 13:55:06 +00:00
itohy a833d94864 Add #include <machine/cpu.h> for need_resched() macro. 1999-10-21 23:24:08 +00:00
thorpej 09e277b357 Fix typos in the license notice. 1999-10-11 01:18:35 +00:00
tron 4d4888a7cb After linux_sys_clone() has been moved to "linux_sched.c" we don't need
to include "linux_sched.h" any more.
1999-10-05 09:22:04 +00:00
fvdl 6c6e28d62b Handle the newer, larger sigset_t Linux now uses. 1999-10-04 17:46:37 +00:00
tron 684ef7f4c2 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:58:15 +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
tron 0b48cdd9f8 NetBSD's signal number 11 is SIGSYS nog SIGSEGV. 1999-09-30 19:32:53 +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
jdolecek cfa9258f85 Use DEBUG_LINUX exclusively. Fixes PR#7684. 1999-09-08 16:52:08 +00:00
thorpej 2c358fca82 Update for new msgctl()/semctl()/shmctl() calls. 1999-08-25 04:52:06 +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
tron c3ea560498 Add emulation for Linux stime(2) required for MuPAD's X11 interface. 1999-08-16 19:06:29 +00:00
jtk 92bf84ec68 implement emulation of SIOCGIFHWADDR, PR 7997 1999-07-17 22:03:55 +00:00
jtk c13299119a add LINUX_SIOCGIFHWADDR 1999-07-17 21:46:28 +00:00
thorpej c581bf97c5 A few things to make the Linux clone(2) emulation work a bit better:
- When the exit signal is specified to be 0, don't just assume they
  meant SIGCHLD.  In the Linux world, this appears to mean "don't deliver
  an exit signal at all".
- Simplify P_EXITSIG(); don't check against initproc here, just change
  the exit signal to SIGCHLD if reparenting to initproc.

A very simple clone(2) test program now works, and the MpegTV package
starts, but doesn't run properly yet (I believe there is a separate
bug which keeps it from working properly).
1999-07-15 23:18:41 +00:00
tron c0567a6bc7 Add support for SETALL and GETALL to the Linux emulation of semctl()
and improve handling of SETVAL. Patches supplied by YAMAMOTO Jiro in
PR kern/7621.
1999-05-27 13:30:40 +00:00
thorpej a2dc12021c Oops, completely forgot to translate the exit signal in clone(2). 1999-05-17 19:26:33 +00:00
thorpej 0f74e48ca5 Emulate the Linux {get,set}resgid(2) system calls. 1999-05-14 18:45:31 +00:00
thorpej 8a61761cc5 Emulate the Linux {get,set}resuid(2) system calls. 1999-05-14 18:44:50 +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
thorpej 053ec76d86 Fully emulate the Linux wait4(2) system call, including the __WCLONE
flag (which is equivalent to our new WALTSIG).
1999-05-13 01:00:50 +00:00
thorpej 5512f35a12 Define the flags used by the Linux wait4() system call. 1999-05-13 00:31:57 +00:00
thorpej e2c674e2c6 Add scheduling-related definitions. Currently we have the flags passed
to the __clone(2) system call.
1999-05-12 19:49:09 +00:00
thorpej e3669c3393 Add "use counting" to file entries. When closing a file, and it's reference
count is 0, wait for use count to drain before finishing the close.

This is necessary in order for multiple processes to safely share file
descriptor tables.
1999-05-05 20:01:01 +00:00
cgd af8a9059d3 compute the value to be used for e_arglen via howmany(value, sizeof (char *)),
rather than just "value / sizeof (char *)".  While in these cases the latter
works as well, the former's a better example for other uses to copy (since
it handles the non-integral multiple case correctly).
1999-04-30 23:07:01 +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
sommerfe 280a842850 commit fix to PR7072: emulate linux non-blocking connect behavior more correctly 1999-03-25 04:26:45 +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
itohy cfcb284c09 cachectl -> cachectl1 1999-03-02 18:22:29 +00:00
itohy da0a919754 Regen. 1999-02-10 10:38:15 +00:00
itohy 5af2655c9d const mania 1999-02-10 10:36:26 +00:00
christos c3ae7cb2a9 Regen 1999-02-09 20:38:38 +00:00
christos c8216580df const poisoning. 1999-02-09 20:37:19 +00:00
christos 8024779058 const poisoning 1999-02-09 20:37:00 +00:00
tron f7f56f986f Revert last changes:
Because "linux_ipccall.h" cannot be included before "sys/shm.h" and
"sys/shm.h" needs to be included after "opt_sysv.h" include "opt_sysv.h"
in "linux_ipccall.c" again.
1999-01-10 15:05:36 +00:00
kleink 5f79ea56a1 Rearrange the emulation-specific setregs() entry to set up the FPU control
word *after* calling the native setregs(), which would clobber it again.
1999-01-08 11:59:38 +00:00
erh 5c1e9076ad Make consistent: si_ -> lsi_ 1999-01-03 05:34:39 +00:00
erh b19295f334 Speed up compilation by #include-ing C files from common into one file. 1999-01-03 05:29:31 +00:00
erh d9a22c586a Undo previous: Put back opt_sysv.h 1999-01-03 05:18:01 +00:00
erh f1a0e1b396 Avoid name clash with standard si_{uid,pid} fields. 1999-01-03 04:53:59 +00:00
erh 5422cb89d9 Moved sysv opt include to header file. 1999-01-03 04:30:56 +00:00
erh 4289065a1b Moved opt include to header file. 1999-01-03 03:54:45 +00:00
erh 41590f69e2 Grab the sysv options. 1999-01-03 03:52:22 +00:00
drochner 8b9671f0f5 get "opt_compat_xxx.h" includes out of <sys/signal.h> 1998-12-19 16:27:09 +00:00
christos f9ac5ff367 more defensive signal conversion, and fix a malloc sizeof(int) to sizeof(int *). 1998-12-16 10:21:50 +00:00
itohy 0c080222db Added linux compat support on m68k ports. 1998-12-15 19:31:30 +00:00
itohy e0f218ab08 Generated from syscalls.master. 1998-12-15 19:28:31 +00:00
itohy 0176ca73ed Initial support of Linux/m68k compatibility. 1998-12-15 19:25:40 +00:00
augustss 57186cce33 Slight code rearrangement and more defensive tests for the sequencer device. 1998-12-15 10:32:16 +00:00
christos f0c7751046 Regen 1998-12-10 17:13:06 +00:00
christos 35af069802 defopt COMPAT_43 1998-12-10 17:07:04 +00:00
erh efe6591d21 Whoops, _NSIG->LINUX__NSIG. 1998-12-10 00:31:50 +00:00
erh f7373c1eba Add mmap header. 1998-12-08 21:02:18 +00:00
erh cdc6431c25 At least make this compile. Add linux compat version of auxillary data eventually to be used to make the emulation work correctly. 1998-12-08 21:00:11 +00:00
drochner c48ea35c91 include missing SYSV option header - PR kern/6479 by Urban Boquist 1998-11-22 15:00:47 +00:00
erh bda913305b Make sure the interpreter string is long enough to check against. 1998-11-05 22:19:25 +00:00
christos 7d7a80a8fd Allow kdump to compile again. 1998-10-24 19:03:53 +00:00
veego 4c127bdcd4 Include linux_errno.h to fix the recent error->errno losage. 1998-10-23 10:54:58 +00:00
erh 907ec5233d linux_error.c moved to linux_errno.c 1998-10-23 03:56:22 +00:00
erh 8b351f0104 Change linux_error to native_to_linux_errno. Add some (unrelated) debugging printfs. 1998-10-23 03:53:18 +00:00
erh 76aa1f4bcf Moved to linux_errno.c,v 1998-10-23 03:46:25 +00:00
erh a766015254 Moved from linux_error.c,v 1998-10-23 03:45:37 +00:00
erh dd1e5f373e Define LINUX_GCC_SIGNATURE. 1998-10-22 18:13:02 +00:00
tron 120e9f4e91 Defopt SYSVMSG, SYSVSEM and SYSVSHM. 1998-10-19 22:37:53 +00:00
tron 76a0f5408b Regen. 1998-10-19 22:25:55 +00:00
tron c71ccab136 Defopt SYSVMSG, SYSVSEM and SYSVSHM. 1998-10-19 22:21:19 +00:00
erh edeeb71bd8 Add the sigaction call. 1998-10-07 23:48:04 +00:00
erh 00a3eb89be This is used on the alpha. It is called osf_sigaction under linux because of the format of the sigaction structure but it acts the same. 1998-10-07 23:47:44 +00:00
erh 7d45dcb522 Kill the linux_old*.h includes (which are only used in the corresponding linux_old*.c). Add linux_siginfo.h. 1998-10-07 23:11:13 +00:00
erh ecdbc1172b Regen. 1998-10-07 23:08:26 +00:00
erh 358899800e Change sys_mmap to NOARGS. (args defined in linux_sys_mmap.h). Typo: siginfo_t->linux_siginfo_t. 1998-10-07 23:07:30 +00:00
erh 1a89cf484f Move linux_sys_mmap declarations to linux_mmap.h Make sure oldmmap.c includes oldmmap.h. 1998-10-07 23:06:17 +00:00
erh 8ce2ceae35 Fix typos. 1998-10-07 23:05:09 +00:00
erh a956aca8aa This needs its defines. 1998-10-07 22:58:19 +00:00
erh 47a9e7f352 Fix typos. 1998-10-07 22:50:42 +00:00
erh baf6c8420d Fix types. Kill old declarations. 1998-10-07 22:45:51 +00:00
erh c7176f00e4 The siginfo include line is not needed here anymore. 1998-10-07 22:17:57 +00:00
erh 3bd73b1ef1 Add prototype for linux_sigprocmask1(). 1998-10-07 22:13:39 +00:00
erh ddbb7b3349 sigprocmask (non-rt) version doesn't exist on alpha. rename it to sigprocmask1 for use in linux_sys_sigprocmask and linux_sys_rt_sigprocmask. 1998-10-07 22:12:48 +00:00
erh 30f959e6c6 sigprocmask (non-rt version) doesn't exist on alpha. Add it here. 1998-10-07 22:11:16 +00:00
erh 15eaa765b7 Files moved. Change the paths here. 1998-10-07 20:50:44 +00:00