summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authormsmith <msmith@FreeBSD.org>1997-12-15 06:09:11 +0000
committermsmith <msmith@FreeBSD.org>1997-12-15 06:09:11 +0000
commitb8788313885de000a82071e85a16dd9da47b8e6e (patch)
tree846c6fe0b5128fdc83bd9977d37c2a86e9a73788 /sys/compat
parentfc1a3527882f5480b46677a1e8c40d09e9110080 (diff)
downloadFreeBSD-src-b8788313885de000a82071e85a16dd9da47b8e6e.zip
FreeBSD-src-b8788313885de000a82071e85a16dd9da47b8e6e.tar.gz
As described by the submitter:
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>
Diffstat (limited to 'sys/compat')
-rw-r--r--sys/compat/linux/linux_ioctl.c55
1 files changed, 54 insertions, 1 deletions
diff --git a/sys/compat/linux/linux_ioctl.c b/sys/compat/linux/linux_ioctl.c
index aa9e844..dfe001d 100644
--- a/sys/compat/linux/linux_ioctl.c
+++ b/sys/compat/linux/linux_ioctl.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: linux_ioctl.c,v 1.21 1997/11/06 19:28:55 phk Exp $
+ * $Id: linux_ioctl.c,v 1.22 1997/11/17 04:00:32 ahasty Exp $
*/
#include <sys/param.h>
@@ -44,6 +44,7 @@
#include <sys/sockio.h>
#include <machine/soundcard.h>
+#include <machine/console.h>
#include <i386/linux/linux.h>
#include <i386/linux/linux_proto.h>
@@ -836,6 +837,58 @@ linux_ioctl(struct proc *p, struct linux_ioctl_args *args)
}
return ioctl(p, (struct ioctl_args *)args);
+ case LINUX_VT_OPENQRY:
+
+ args->cmd = VT_OPENQRY;
+ return ioctl(p, (struct ioctl_args *)args);
+
+ case LINUX_VT_GETMODE:
+
+ args->cmd = VT_GETMODE;
+ return ioctl(p, (struct ioctl_args *)args);
+
+ case LINUX_VT_SETMODE:
+
+ args->cmd = VT_SETMODE;
+ return ioctl(p, (struct ioctl_args *)args);
+
+ case LINUX_VT_GETSTATE:
+
+ args->cmd = VT_GETACTIVE;
+ return ioctl(p, (struct ioctl_args *)args);
+
+ case LINUX_VT_ACTIVATE:
+
+ args->cmd = VT_ACTIVATE;
+ return ioctl(p, (struct ioctl_args *)args);
+
+ case LINUX_VT_WAITACTIVE:
+
+ args->cmd = VT_WAITACTIVE;
+ return ioctl(p, (struct ioctl_args *)args);
+
+ case LINUX_KDGKBMODE:
+
+ args->cmd = KDGKBMODE;
+ return ioctl(p, (struct ioctl_args *)args);
+
+ case LINUX_KDSKBMODE:
+ {
+ int kbdmode;
+ switch (args->arg) {
+ case LINUX_KBD_RAW:
+ kbdmode = K_RAW;
+ return (*func)(fp, KDSKBMODE, (caddr_t)&kbdmode, p);
+ case LINUX_KBD_XLATE:
+ kbdmode = K_XLATE;
+ return (*func)(fp, KDSKBMODE , (caddr_t)&kbdmode, p);
+ case LINUX_KBD_MEDIUMRAW:
+ kbdmode = K_RAW;
+ return (*func)(fp, KDSKBMODE , (caddr_t)&kbdmode, p);
+ default:
+ return EINVAL;
+ }
+ }
}
uprintf("LINUX: 'ioctl' fd=%d, typ=0x%x(%c), num=0x%x not implemented\n",
args->fd, (args->cmd&0xffff00)>>8,
OpenPOWER on IntegriCloud