aboutsummaryrefslogtreecommitdiff
path: root/sys/i386/linux/linux_ioctl.c
Commit message (Collapse)AuthorAgeFilesLines
* Finish the Linuxulator MD/MI split.Marcel Moolenaar2000-08-221-1529/+0
| | | | | | | | | | | | In summary: o This file has been moved to sys/compat/linux, o Any MD syscalls in this file are moved to linux_machdep.c in sys/i386/linux, o Include directives, makefiles and config files have been updated. Notes: svn path=/head/; revision=64931
* Back out the previous change to the queue(3) interface.Jake Burkholder2000-05-261-2/+2
| | | | | | | | | It was not discussed and should probably not happen. Requested by: msmith and others Notes: svn path=/head/; revision=60938
* Change the way that the queue(3) structures are declared; don't assume thatJake Burkholder2000-05-231-2/+2
| | | | | | | | | | | the type argument to *_HEAD and *_ENTRY is a struct. Suggested by: phk Reviewed by: phk Approved by: mdodd Notes: svn path=/head/; revision=60833
* Fix some style bugs. The long line is in a chunk of code that'sNick Sayer2000-03-131-4/+4
| | | | | | | | | being rewritten, though. Submitted by: bde Notes: svn path=/head/; revision=57998
* Implement Linux BLKGETSIZE ioctl, and open the door to implementingNick Sayer2000-03-091-0/+23
| | | | | | | | | other BLK.* ioctls should the desire arize. Approved by: jkh (via dufault) Notes: svn path=/head/; revision=57858
* Avoid passing an uninitialized structure member to the realNick Sayer2000-02-011-0/+1
| | | | | | | | | | READSUBCHANNEL ioctl. This makes vmware work with SCSI CDROM drives. Approved by: jkh Notes: svn path=/head/; revision=56940
* Implement pluggable ioctl handlers.Marcel Moolenaar1999-12-041-987/+1203
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* add linuxulator wrapper for SNDCTL_DSP_GETODELAYAlfred Perlstein1999-11-291-0/+4
| | | | Notes: svn path=/head/; revision=53902
* Swap IOC_OUT and IOC_IN for the SETDIR macro. The linux ioctl read andJohn Hay1999-10-061-1/+1
| | | | | | | | | write bits are swapped. Reviewed by: luoqi, marcel Notes: svn path=/head/; revision=51969
* This is what was "fdfix2.patch," a fix for fd sharing. It's prettyBrian Feldman1999-09-191-21/+19
| | | | | | | | | | | | | | | | | | | | far-reaching in fd-land, so you'll want to consult the code for changes. The biggest change is that now, you don't use fp->f_ops->fo_foo(fp, bar) but instead fo_foo(fp, bar), which increments and decrements the fp refcount upon entry and exit. Two new calls, fhold() and fdrop(), are provided. Each does what it seems like it should, and if fdrop() brings the refcount to zero, the fd is freed as well. Thanks to peter ("to hell with it, it looks ok to me.") for his review. Thanks to msmith for keeping me from putting locks everywhere :) Reviewed by: peter Notes: svn path=/head/; revision=51418
* <machine/soundcard.h> -> <sys/soundcard.h>, since it's an exported APIPeter Wemm1999-09-041-1/+1
| | | | | | | that's arch neutral and OSS API and Linux API compatable. Notes: svn path=/head/; revision=50903
* Implement the OSS_GETVERSION ioctl. The version returned can be changed throughMarcel Moolenaar1999-08-281-0/+8
| | | | | | | | | | 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
* Fix a bug in debug-printfs of struct linux_termios fields, where I forgot toMarcel Moolenaar1999-08-171-5/+5
| | | | | | | | | | change the format specifier after changing the definition of the structure. Submitted by: billf Commented on by: bde Notes: svn path=/head/; revision=49960
* Fix LINUX_TIOC{S|G}SERIAL implementation. Both do not copy data in or outMarcel Moolenaar1999-08-141-25/+21
| | | | | | | | | | | | of kernel space. Remove the ioctl supporting functions, and move the actual code to the switch-statement. Now everybody can clearly see that the implementation is really poor. Also fix a typo in LINUX_TIOCGETD. The underlying function was given command TIOCSETD instead op TIOCGETD... Notes: svn path=/head/; revision=49774
* Fix the LINUX_TCSET{A|AW|AF} and LINUX_TCSET{S|SW|SF} ioctls. These all sufferMarcel Moolenaar1999-08-141-7/+28
| | | | | | | | from the same bug in that the argument is not first copied from user space before it is used. This is part 2 (of 2) of the termios fixes. Notes: svn path=/head/; revision=49768
* Fix a couple of termio/termios conversion bugs/typos/dupos/brainos and otherMarcel Moolenaar1999-08-141-18/+23
| | | | | | | | | | | | | | | | | | | | | | | | | changes. This is part 1 of the complete termios ioctl fixes. o change type of c_{i|o|c|l}flag in struct termios from unsigned long to unsigned int. The type now matches the Linux definitions. o replaced constants by the corresponding defines in sptab[] for clarity. Since there's no define for 135 baud, its mapping has been dropped. function bsd_to_linux_termios: o Fix typo IXON -> IXANY. o Remove bogus assignment to c_cc[LINUX_VSWTC]. function linux_to_bsd_termios: o Fix dupo LINUX_IXON -> LINUX_IXANY. o Add LINUX_CREAD mapping. o Fix typo IEXTEN -> LINUX_IEXTEN. function linux_to_bsd_termio: o Small optimization: Don't preset the complete c_cc array when we next assign to the first LINUX_NCC entries. Notes: svn path=/head/; revision=49766
* Implementation of the CDROMSUBCHNL ioctl.Marcel Moolenaar1999-08-131-1/+65
| | | | Notes: svn path=/head/; revision=49688
* Implementation of TCXONC.Marcel Moolenaar1999-07-171-1/+32
| | | | | | | Reviewed by: bde Notes: svn path=/head/; revision=48851
* Implement VT_RELDISP ioctlMarcel Moolenaar1999-07-081-1/+6
| | | | | | | Submitted by: Kazutaka Yokota <yokota@FreeBSD.org> Notes: svn path=/head/; revision=48685
* Trivial implementation of TIOCM{S|G}ET and TIOCMBI{S|C} ioctls. No needMarcel Moolenaar1999-07-061-1/+17
| | | | | | | to convert the arguments. Notes: svn path=/head/; revision=48628
* Fix a couple of warnings and some bitrot in comments.Peter Wemm1999-05-091-1/+3
| | | | Notes: svn path=/head/; revision=46803
* Fix up a few easy 'assignment used as truth value' and 'suggest parensPeter Wemm1999-05-061-2/+3
| | | | | | | | around && within ||' type warnings. I'm pretty sure I have not masked any problems here, I've committed real problem fixes seperately. Notes: svn path=/head/; revision=46571
* - Handle mixer read ioctls correctly. They have the same group, number andLuoqi Chen1999-04-291-18/+149
| | | | | | | | argument size as their write counterparts and were handled as write ioctls. - Emulate some cdrom ioctls. Notes: svn path=/head/; revision=46163
* MF22: Bring in some linux sound ioctl support which I committed to 2.2Jordan K. Hubbard1998-11-121-1/+61
| | | | | | | | | | 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
* Add several missing ioctl handlers. One needed by Sybase, the othersJohn Fieber1998-09-301-1/+21
| | | | | | | found while looking for the one. Notes: svn path=/head/; revision=39799
* Argh! *Now* the correct 3.0 fix is committed.Jordan K. Hubbard1998-08-311-7/+7
| | | | Notes: svn path=/head/; revision=38679
* Whoops! Stamp out a 2.2-ism that snuck between branches here.Jordan K. Hubbard1998-08-311-2/+2
| | | | Notes: svn path=/head/; revision=38677
* Initial support for using linux X servers under emulation - to use anJordan K. Hubbard1998-08-311-4/+36
| | | | | | | | | | | | | | | | | | | 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
* Fixed print format errors.Bruce Evans1998-07-291-13/+11
| | | | Notes: svn path=/head/; revision=37950
* This commit fixes various 64bit portability problems required forDoug Rabson1998-06-071-2/+2
| | | | | | | | | | | | | FreeBSD/alpha. The most significant item is to change the command argument to ioctl functions from int to u_long. This change brings us inline with various other BSD versions. Driver writers may like to use (__FreeBSD_version == 300003) to detect this change. The prototype FreeBSD/alpha machdep will follow in a couple of days time. Notes: svn path=/head/; revision=36735
* As described by the submitter:Mike Smith1997-12-151-1/+54
| | | | | | | | | | | | | | 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-2/+18
| | | | | | | | | | | | 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
* Move the "retval" (3rd) parameter from all syscall functions and putPoul-Henning Kamp1997-11-061-57/+57
| | | | | | | | | | | | | | | it in struct proc instead. This fixes a boatload of compiler warning, and removes a lot of cruft from the sources. I have not removed the /*ARGSUSED*/, they will require some looking at. libkvm, ps and other userland struct proc frobbing programs will need recompiled. Notes: svn path=/head/; revision=30994
* Removed unused #includes.Bruce Evans1997-07-201-3/+1
| | | | Notes: svn path=/head/; revision=27557
* Make this thing actually compile.Doug Rabson1997-06-021-2/+2
| | | | Notes: svn path=/head/; revision=26378
* Oops, remove some bogus debugging code that crept in with the last commit.Mike Smith1997-06-021-10/+1
| | | | Notes: svn path=/head/; revision=26366
* Add support for the SIOCGIFHWADDR ioctl, commonly used byMike Smith1997-06-021-1/+44
| | | | | | | | | | | | 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
* Don't include <sys/ioctl.h> in the kernel. Stage 3: includeBruce Evans1997-03-241-3/+2
| | | | | | | <sys/filio.h> instead of <sys/ioctl.h> in non-network non-tty files. Notes: svn path=/head/; revision=24205
* Don't #include <sys/fcntl.h> in <sys/file.h> if KERNEL is defined.Bruce Evans1997-03-231-1/+2
| | | | | | | | Fixed everything that depended on getting fcntl.h stuff from the wrong place. Most things don't depend on file.h stuff at all. Notes: svn path=/head/; revision=24131
* 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 audio mixer ioctls.Sujal Patel1996-11-051-1/+73
| | | | | | | Only writing to the mixer is implemented. Notes: svn path=/head/; revision=19414
* Removed unused #include. Linux doesn't support SCO consoles.Bruce Evans1996-06-231-2/+1
| | | | Notes: svn path=/head/; revision=16632
* Clean up -Wunused warnings.Gary Palmer1996-06-121-5/+3
| | | | | | | Reviewed by: bde Notes: svn path=/head/; revision=16322
* Implement rudumentry support for the linux TIOC[SG]ETSERIAL ioctl's.Peter Wemm1996-03-101-1/+62
| | | | | | | | | | | To complete this, some extra state has to be kept somewhere so that the B38400 flag in Linux can be correctly translated to/from either 38400, 57600 or 115200. Submitted by: Robert Sanders <rsanders@mindspring.com> Notes: svn path=/head/; revision=14466
* Add support for LINUX_TCSETAW and LINUX_TCSETAF, which Linux-pine uses.Peter Wemm1996-03-041-1/+9
| | | | | | | Submitted by: Robert Sanders <rsanders@mindspring.com> Notes: svn path=/head/; revision=14371
* Add support for the old-style Linux termio (not termios) TCGETA etc.Peter Wemm1996-03-031-2/+72
| | | | | | | | | | | | Also, LINUX_POSIX_VDISABLE is \0, FreeBSD's is 0xff. Convert between them. This enables some more programs to run, including the Livingston Portmaster utilities (PMtools). Submitted by: Robert Sanders <rsanders@mindspring.com> Notes: svn path=/head/; revision=14361
* Mega-commit for Linux emulator update.. This has been stress tested underPeter Wemm1996-03-021-9/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | netscape-2.0 for Linux running all the Java stuff. The scrollbars are now working, at least on my machine. (whew! :-) I'm uncomfortable with the size of this commit, but it's too inter-dependant to easily seperate out. The main changes: COMPAT_LINUX is *GONE*. Most of the code has been moved out of the i386 machine dependent section into the linux emulator itself. The int 0x80 syscall code was almost identical to the lcall 7,0 code and a minor tweak allows them to both be used with the same C code. All kernels can now just modload the lkm and it'll DTRT without having to rebuild the kernel first. Like IBCS2, you can statically compile it in with "options LINUX". A pile of new syscalls implemented, including getdents(), llseek(), readv(), writev(), msync(), personality(). The Linux-ELF libraries want to use some of these. linux_select() now obeys Linux semantics, ie: returns the time remaining of the timeout value rather than leaving it the original value. Quite a few bugs removed, including incorrect arguments being used in syscalls.. eg: mixups between passing the sigset as an int, vs passing it as a pointer and doing a copyin(), missing return values, unhandled cases, SIOC* ioctls, etc. The build for the code has changed. i386/conf/files now knows how to build linux_genassym and generate linux_assym.h on the fly. Supporting changes elsewhere in the kernel: The user-mode signal trampoline has moved from the U area to immediately below the top of the stack (below PS_STRINGS). This allows the different binary emulations to have their own signal trampoline code (which gets rid of the hardwired syscall 103 (sigreturn on BSD, syslog on Linux)) and so that the emulator can provide the exact "struct sigcontext *" argument to the program's signal handlers. The sigstack's "ss_flags" now uses SS_DISABLE and SS_ONSTACK flags, which have the same values as the re-used SA_DISABLE and SA_ONSTACK which are intended for sigaction only. This enables the support of a SA_RESETHAND flag to sigaction to implement the gross SYSV and Linux SA_ONESHOT signal semantics where the signal handler is reset when it's triggered. makesyscalls.sh no longer appends the struct sysentvec on the end of the generated init_sysent.c code. It's a lot saner to have it in a seperate file rather than trying to update the structure inside the awk script. :-) At exec time, the dozen bytes or so of signal trampoline code are copied to the top of the user's stack, rather than obtaining the trampoline code the old way by getting a clone of the parent's user area. This allows Linux and native binaries to freely exec each other without getting trampolines mixed up. Notes: svn path=/head/; revision=14331
* Oops, forgot a little difference between my src-tree and ours...Søren Schmidt1995-12-301-2/+2
| | | | Notes: svn path=/head/; revision=13113