summaryrefslogtreecommitdiff
path: root/sys/i386/linux/linux.h
Commit message (Collapse)AuthorAgeFilesLines
* In FreeBSD's ifreq, ifr_ifru.ifru_flags is an array of two chars, while LinuxDag-Erling Smørgrav2001-10-151-1/+1
| | | | | | | | defines it as a short. Change that to an array of one short so that FreeBSD's ifr_flags macro will work (it evaluates to ifr_ifru.ifru_flags[0]). Notes: svn path=/head/; revision=85008
* Implement LINUX_[SEM|IPC]_[STAT|INFO]Michael Reifenberger2001-09-151-0/+2
| | | | | | | | | | to make /compat/linux/usr/bin/ipcs -s happy. PR: kern/29698 (part) Reviewed by: audit Notes: svn path=/head/; revision=83501
* KSE Milestone 2Julian Elischer2001-09-121-4/+4
| | | | | | | | | | | | | | | | | Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha Notes: svn path=/head/; revision=83366
* Round of cleanups and enhancements. These include (in random order):Marcel Moolenaar2001-09-081-133/+248
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o Introduce private types for use in linux syscalls for two reasons: 1. establish type independence for ease in porting and, 2. provide a visual queue as to which syscalls have proper prototypes to further cleanup the i386/alpha split. Linuxulator types are prefixed by 'l_'. void and char have not been "virtualized". o Provide dummy functions for all syscalls and remove dummy functions or implementations of truely obsolete syscalls. o Sanitize the shm*, sem* and msg* syscalls. o Make a first attempt to implement the linux_sysctl syscall. At this time it only returns one MIB (KERN_VERSION), but most importantly, it tells us when we need to add additional sysctls :-) o Bump the kenel version up to 2.4.2 (this is not the same as the KERN_VERSION MIB, BTW). o Implement new syscalls, of which most are specific to i386. Our syscall table is now up to date with Linux 2.4.2. Some highlights: - Implement the 32-bit uid_t and gid_t bases syscalls. - Implement a couple of 64-bit file size/offset bases syscalls. o Fix or improve numerous syscalls and prototypes. o Reduce style(9) violations while I'm here. Especially indentation inconsistencies within the same file are addressed. Re-indenting did not obfuscate actual changes to the extend that it could not be combined. NOTE: I spend some time testing these changes and found that if there were regressions, they were not caused by these changes AFAICT. It was observed that installing a RH 7.1 runtime environment did make matters worse. Hangs and/or reboots have been observed with and without these changes, so when it failed to make life better in cases it doesn't look like it made it worse. Notes: svn path=/head/; revision=83221
* With this commit, I hereby pronounce gensetdefs past its use-by date.Peter Wemm2001-06-131-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace the a.out emulation of 'struct linker_set' with something a little more flexible. <sys/linker_set.h> now provides macros for accessing elements and completely hides the implementation. The linker_set.h macros have been on the back burner in various forms since 1998 and has ideas and code from Mike Smith (SET_FOREACH()), John Polstra (ELF clue) and myself (cleaned up API and the conversion of the rest of the kernel to use it). The macros declare a strongly typed set. They return elements with the type that you declare the set with, rather than a generic void *. For ELF, we use the magic ld symbols (__start_<setname> and __stop_<setname>). Thanks to Richard Henderson <rth@redhat.com> for the trick about how to force ld to provide them for kld's. For a.out, we use the old linker_set struct. NOTE: the item lists are no longer null terminated. This is why the code impact is high in certain areas. The runtime linker has a new method to find the linker set boundaries depending on which backend format is in use. linker sets are still module/kld unfriendly and should never be used for anything that may be modular one day. Reviewed by: eivind Notes: svn path=/head/; revision=78161
* Allow debugging output to be controlled on a per-syscall granularity.Jonathan Lemon2001-02-161-0/+8
| | | | | | | | | Also clean up debugging output in a slightly more uniform fashion. The default behavior remains the same (all debugging output is turned on) Notes: svn path=/head/; revision=72543
* Add mount syscall to linux emulation. Also improve emulation of reboot.Jonathan Lemon2001-02-161-0/+9
| | | | Notes: svn path=/head/; revision=72538
* Don't use p->p_sigstk.ss_flags to keep state of whether theMarcel Moolenaar2000-11-301-1/+0
| | | | | | | | | | | | | | | | | | process is on the alternate stack or not. For compatibility with sigstack(2) state is being updated if such is needed. We now determine whether the process is on the alternate stack by looking at its stack pointer. This allows a process to siglongjmp from a signal handler on the alternate stack to the place of the sigsetjmp on the normal stack. When maintaining state, this would have invalidated the state information and causing a subsequent signal to be delivered on the normal stack instead of the alternate stack. PR: 22286 Notes: svn path=/head/; revision=69379
* o Change the argument of linux_sigreturn to be a pointer to aMarcel Moolenaar2000-11-231-10/+9
| | | | | | | | | | | | | struct sigframe. We need more than only the signal context. o Properly convert the signal mask when setting up the signal frame in linux_sendsig and properly convert it back in linux_sigreturn. Do some cleanups and improve style while here. Notes: svn path=/head/; revision=69081
* remove redundant declaration of bsd_to_linux_sigset()Andrew Gallatin2000-11-161-1/+0
| | | | | | | reviewed by: marcel Notes: svn path=/head/; revision=68807
* Make linux_sendsig and linux_sigreturn use all 64 bits of aAndrew Gallatin2000-11-131-2/+42
| | | | | | | | | | | | | | | | | | | | | linux_sigset_t by updating the linux_sigframe struct so as to include linux's "extramask" field. This field contains the upper 32-bits of the sigset. extramask sits behind a linux_fpstate struct, which I've defined primarily for padding purposes. While we're here, define LINUX_NSIG in terms of LINUX_NBPW (32) and LINUX_NSIG_WORDS (2). This fixes problems where threaded apps would accumulate a large number of zombies. This was happening because the exit signal resides in the upper 32-bits of the sigset and was never getting unmasked by the manager thread after the first child exited. PR: misc/18530 (may be related, originator not yet contacted) Reviewed by: marcel Notes: svn path=/head/; revision=68689
* Revert auto-generation. The Alpha port is broken.Marcel Moolenaar2000-11-101-1/+1
| | | | | | | Syncing with it is wrong. Notes: svn path=/head/; revision=68583
* Sync with Alpha:Marcel Moolenaar2000-11-091-1/+1
| | | | | | | | Do not use sysent.c, proto.h and syscall.h in source tree; use auto-generated versions. Notes: svn path=/head/; revision=68519
* A start at an implemention of linux_rt_sendsig & linux_rt_sigreturnAndrew Gallatin2000-10-171-0/+80
| | | | | | | | | | | | | | | | | and associated user-level signal trampoline glue. Without this patch, an SA_SIGINFO style handler can be installed by a linux app, but if the handler accesses its sip argument, it will get a garbage pointer and likely segfault. We currently supply a valid pointer, but its contents are mainly garbage. Filling this in properly is future work. This is the second of 3 commits that will get IBM's JDK 1.3 working with FreeBSD ... Notes: svn path=/head/; revision=67234
* This is the first of 3 commits that will get IBM's JDK 1.3 workingAndrew Gallatin2000-10-131-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | with FreeBSD (not including the MINSIGSTKSZ issue, which belongs to Marcel). Due to time constraints, I'm going to space them out over a few days. This fixes two problems with linux_sigaltstack() o ss == 0 is perfectly valid use, so do not fail in this case. o Fix flag handling: - Our SS_DISABLE is 4, linux's is 2, so we need conversion routines. These conversion routines will be needed by linux_rt_sendsig() and linux_rt_sigreturn (forthcoming), so they are not static. - Linux's flag 0 historically meant SS_ONSTACK according to a comment in their linux/kernel/signal.c file. Among other things, this fixes a warning from Sun's JDK 1.3: "Java HotSpot(TM) Client VM warning: cannot uninstall alt signal stack" Reviewed by: marcel Tested by: sto@stat.duke.edu, many others on freebsd-java@ Notes: svn path=/head/; revision=67051
* When sigaltstack is called with a stack size that's not smallerMarcel Moolenaar2000-09-061-0/+3
| | | | | | | | | | than LINUX_MINSIGSTKSZ but smaller than MINSIGSTKSZ, cheat and pass MINSIGSTKSZ to the kernel. This is a workaround. Submitted through: nate Notes: svn path=/head/; revision=65506
* Fix #! script exec under linux emulation. If a script is exec'd from aMatthew Dillon2000-04-261-0/+2
| | | | | | | | | | | | | program running under linux emulation, the script binary is checked for in /compat/linux first. Without this patch the wrong script binary (i.e. the FreeBSD binary) will be run instead of the linux binary. For example, #!/bin/sh, thus breaking out of linux compatibility mode. This solves a number of problems people have had installing linux software on FreeBSD boxes. Notes: svn path=/head/; revision=59663
* Implement pluggable ioctl handlers.Marcel Moolenaar1999-12-041-649/+301
| | | | | | | | | | | | | | | | | | | | | | | | | | | Other modules can register and unregister ioctl handlers to extend the ioctls known by the Linuxulator. A recent application is the vmware port. The Linuxulator itself uses the new interface to register its handlers as well. Handlers for the following types of ioctls have been defined: cdrom console (=keyboard and VT handling) socket sound termio All ioctl related defines and declarations have been moved to a new file (linux_ioctl.h), except for the pluggable ioctl handler interface definition. While there, cleanup linux.h some more. linux.h and linux_ioctl.[ch] have been made to conform to style(9) as much as possible. Inspired and reviewed by: Vladimir N. Silyaev Notes: svn path=/head/; revision=54122
* Implement linux_sigaltstack.Marcel Moolenaar1999-11-301-0/+8
| | | | Notes: svn path=/head/; revision=53954
* add linuxulator wrapper for SNDCTL_DSP_GETODELAYAlfred Perlstein1999-11-291-0/+1
| | | | Notes: svn path=/head/; revision=53902
* sigset_t change (part 4 of 5)Marcel Moolenaar1999-09-291-39/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------- The compatibility code and/or emulators have been updated: iBCS2 now mostly uses the older syscalls. SVR4 now properly handles all signals. This has been achieved by using the new sigset_t throughout the emulator. The Linuxulator has been severely updated. Internally the new Linux sigset_t is made the default. These are then mapped to and from the new FreeBSD sigset_t. Also, rt_sigsuspend has been implemented in the Linuxulator. Implementing this syscall basicly caused all this sigset_t changing in the first place and the syscall has been used throughout the change as a means for testing. It basicly is too much work to undo the implementation so that it can later be added again. A special note on the use of sv_sigtbl and sv_sigsize in struct sysentvec: Every signal larger than sv_sigsize is not translated and is passed on to the signal handler unmodified. Signals in the range 1 upto and including sv_sigsize are translated. The rationale is that only the system defined signals need to be translated. The emulators also have been updated so that the translation tables are only indexed for valid (system defined) signals. This change also fixes the translation bug already in the SVR4 emulator. Notes: svn path=/head/; revision=51793
* Implement the OSS_GETVERSION ioctl. The version returned can be changed throughMarcel Moolenaar1999-08-281-0/+2
| | | | | | | | | | the sysctl variable `compat.linux.oss_version'. PR: 12917 Originator: Dean Lombardo <dlombardo@excite.com> Notes: svn path=/head/; revision=50500
* $Id$ -> $FreeBSD$Peter Wemm1999-08-281-1/+1
| | | | Notes: svn path=/head/; revision=50477
* Change all UNIMPL syscalls to STD and add them to linux_dummy. Now we alwaysMarcel Moolenaar1999-08-251-1/+10
| | | | | | | | | | | | | | | know if and when an unimplemented or obsoleted syscall is being used. Make the message more end-user friendly. And as long as we're here, rename some unimplemeted syscalls (linux_phys -> linux_umount2, linux_vm86 -> linux_vm86old, linux_new_vm86 -> linux_vm86). Change prototype for linux_newuname from `struct linux_newuname_t *' into `struct linux_new_utsname *'. This change is reflected in linux.h and linux_misc.c. Notes: svn path=/head/; revision=50345
* Provide wrappers for sched_{s|g}etscheduler. We need to convert the policyMarcel Moolenaar1999-08-151-1/+6
| | | | | | | | | | argument. PR: 12006 Originator: Jean-Claude MICHOT <jcmichot@teaser.fr> Notes: svn path=/head/; revision=49849
* Implementation of linux_rt_sigaction and linux_rt_sigprocmask syscalls. BothMarcel Moolenaar1999-08-141-1/+15
| | | | | | | | | | | | | functions use the new sigset_t and sigaction_t which allows support for more than 32 signals. Only the lower 32 signals are supported for now. linux_rt_sigaction, linux_sigaction and linux_signal use linux_do_sigaction to do the actual work. That way unnecessary redundancy is avoided. The same has been done for linux_rt_sigprocmask and linux_sigprocmask. They call linux_do_sigprocmask to do the actual work. Notes: svn path=/head/; revision=49786
* Implementation of the CDROMSUBCHNL ioctl.Marcel Moolenaar1999-08-131-1/+4
| | | | Notes: svn path=/head/; revision=49688
* Do not map {s|g}etrlimit onto FreeBSD syscalls. The arguments don't match.Marcel Moolenaar1999-08-111-1/+15
| | | | | | | | | | | The linux syscalls translate the arguments first before invoking the FreeBSD native syscalls. PR: kern/9591 Originator: John Plevyak <jplevyak@inktomi.com> Notes: svn path=/head/; revision=49626
* Implementation of TCXONC.Marcel Moolenaar1999-07-171-2/+6
| | | | | | | Reviewed by: bde Notes: svn path=/head/; revision=48851
* Implement VT_RELDISP ioctlMarcel Moolenaar1999-07-081-1/+2
| | | | | | | Submitted by: Kazutaka Yokota <yokota@FreeBSD.org> Notes: svn path=/head/; revision=48685
* Rename struct members sa_siginfo. POSIX reserves identifiers startingMartin Cracauer1999-07-061-5/+5
| | | | | | | | | | with sa_ when <signal.h> is included. They would conflict with the upcoming SA_SIGINFO implementation. Reviewed by: BDE Notes: svn path=/head/; revision=48620
* - Handle mixer read ioctls correctly. They have the same group, number andLuoqi Chen1999-04-291-2/+29
| | | | | | | | argument size as their write counterparts and were handled as write ioctls. - Emulate some cdrom ioctls. Notes: svn path=/head/; revision=46163
* Commit patch inSøren Schmidt1998-12-301-1/+3
| | | | | | | | PR: 9232 Submitted by: marcel@scc.nl <Marcel Moolenaar> Notes: svn path=/head/; revision=42186
* Reviewed by: Luoqi Chen, Jordan HubbardJulian Elischer1998-12-191-1/+2
| | | | | | | | | | | | | | | Submitted by: "Richard Seaman, Jr." <lists@tar.com> Obtained from: linux :-) Code to allow Linux Threads to run under FreeBSD. By default not enabled This code is dependent on the conditional COMPAT_LINUX_THREADS (suggested by Garret) This is not yet a 'real' option but will be within some number of hours. Notes: svn path=/head/; revision=41931
* MF22: Bring in some linux sound ioctl support which I committed to 2.2Jordan K. Hubbard1998-11-121-1/+16
| | | | | | | | | | for PR 7792 but did not bring forward. Submitted by: Avatar Liang <avatar@www.mmlab.cse.yzu.edu.tw> PR: 8656 Notes: svn path=/head/; revision=41105
* Make async I/O on a socket work.John Fieber1998-10-051-7/+6
| | | | | | | | Although the current Sybase license does not permit running under emulation, FreeBSD 3.0 is now "Sybase Ready" should the license change. Notes: svn path=/head/; revision=39978
* Add several missing ioctl handlers. One needed by Sybase, the othersJohn Fieber1998-09-301-1/+8
| | | | | | | found while looking for the one. Notes: svn path=/head/; revision=39799
* Initial support for using linux X servers under emulation - to use anJordan K. Hubbard1998-08-311-1/+15
| | | | | | | | | | | | | | | | | | | XFree86 server, users need to create the following links in their /compat/linux/dev directory (assuming kernel configured with 4 VTs). lrwxrwxrwx 1 root wheel 7 Aug 30 22:59 tty0 -> console lrwxrwxrwx 1 root wheel 5 Aug 30 22:45 tty1 -> ttyv0 lrwxrwxrwx 1 root wheel 5 Aug 30 22:45 tty2 -> ttyv1 lrwxrwxrwx 1 root wheel 5 Aug 30 22:45 tty3 -> ttyv2 lrwxrwxrwx 1 root wheel 5 Aug 30 22:45 tty4 -> ttyv3 VT switching is still not yet supported. Attempting to switch VT currently will cause Xserver bus error. Submitted by: Chain Lee <chain@110.net> Notes: svn path=/head/; revision=38672
* Staticized.Bruce Evans1998-02-131-2/+1
| | | | Notes: svn path=/head/; revision=33313
* As described by the submitter:Mike Smith1997-12-151-0/+16
| | | | | | | | | | | | | | These patches enables us to play quake2 . Support linux keyboard ioctl for setting RAW, MEDIUMRAW and XLATE. Support linux virtual terminal operations: OPENQRY, GETMODE, SETMODE, GETSTATE, ACTIVATE, and WAITACTIVE. Submitted by: Amancio Hasty <hasty@rah.star-gate.com> Notes: svn path=/head/; revision=31730
* Added support for linux sound ioctls:Amancio Hasty1997-11-171-1/+6
| | | | | | | | | | | | LINUX_SNDCTL_DSP_GETOPTR LINUX_SNDCTL_DSP_GETIPTR LINUX_SNDCTL_DSP_SETTRIGGER LINUX_SNDCTL_DSP_GETCAPS With this rev level the linux realaudio player 5 and xquake should work. Notes: svn path=/head/; revision=31198
* Implement linux_semop, linux_semget and linux_semctl.KATO Takenori1997-10-281-1/+10
| | | | | | | PR: 4355 Notes: svn path=/head/; revision=30804
* Grr. Remove not-ready LDT modification fluff that also crept in withMike Smith1997-06-021-26/+1
| | | | | | | the last commit. Notes: svn path=/head/; revision=26369
* Add support for the SIOCGIFHWADDR ioctl, commonly used byMike Smith1997-06-021-1/+71
| | | | | | | | | | | | license managers to obtain the host's ethernet address as a key. Note that this implementation takes the first hardware address for the first ethernet interface found, and disregards the interface name that may be passed in, as linux ethernet devices are all "ethX". Notes: svn path=/head/; revision=26364
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notPeter Wemm1997-02-221-1/+1
| | | | | | | ready for it yet. Notes: svn path=/head/; revision=22975
* Make the long-awaited change from $Id$ to $FreeBSD$Jordan K. Hubbard1997-01-141-1/+1
| | | | | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise. Notes: svn path=/head/; revision=21673
* Add IP_OPTIONS and the multicast-related setsockopts to theBill Fenner1996-12-031-1/+9
| | | | | | | | | | | | | | list of IP setsockopts the Linux emulator recognizes. Explicitly disallow IP_HDRINCL since Linux's handling of raw output is different than BSD's. Closes PR#kern/2111. Submitted by: y-nakaga@ccs.mt.nec.co.jp (Yoshihisa NAKAGAWA) Notes: svn path=/head/; revision=20101
* Add audio mixer ioctls.Sujal Patel1996-11-051-1/+19
| | | | | | | Only writing to the mixer is implemented. Notes: svn path=/head/; revision=19414
* Declare pointers to signal handling functions in full instead of asBruce Evans1996-10-251-3/+2
| | | | | | | sig_t's so that <sys/signal.h> isn't a prerequisite. Notes: svn path=/head/; revision=19182
* Updated #includes to 4.4lite style.Bruce Evans1996-10-151-2/+3
| | | | Notes: svn path=/head/; revision=18946