summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorNiklas Hallqvist <niklas@cvs.openbsd.org>1997-11-04 07:45:37 +0000
committerNiklas Hallqvist <niklas@cvs.openbsd.org>1997-11-04 07:45:37 +0000
commit624497e8480896c9cd421b285af2d8fe240b3394 (patch)
treec237124edf6ce7d9cb151d1f2690ecd8f7a1250f /sys
parent057e464ecf76a87de1702c9660f3a622af319c88 (diff)
Add SVR4 jioctl stuff
Diffstat (limited to 'sys')
-rw-r--r--sys/compat/svr4/files.svr43
-rw-r--r--sys/compat/svr4/svr4_ioctl.c11
-rw-r--r--sys/compat/svr4/svr4_ioctl.h4
-rw-r--r--sys/compat/svr4/svr4_jioctl.c77
-rw-r--r--sys/compat/svr4/svr4_jioctl.h78
5 files changed, 168 insertions, 5 deletions
diff --git a/sys/compat/svr4/files.svr4 b/sys/compat/svr4/files.svr4
index db858de6377..1b62632ee1c 100644
--- a/sys/compat/svr4/files.svr4
+++ b/sys/compat/svr4/files.svr4
@@ -1,4 +1,4 @@
-# $OpenBSD: files.svr4,v 1.5 1996/05/10 12:50:24 deraadt Exp $
+# $OpenBSD: files.svr4,v 1.6 1997/11/04 07:45:36 niklas Exp $
# $NetBSD: files.svr4,v 1.7 1996/05/05 17:14:25 mrg Exp $
#
# Config.new file description for machine-independent SVR4 compat code.
@@ -13,6 +13,7 @@ file compat/svr4/svr4_fcntl.c compat_svr4
file compat/svr4/svr4_filio.c compat_svr4
file compat/svr4/svr4_ioctl.c compat_svr4
file compat/svr4/svr4_ipc.c compat_svr4
+file compat/svr4/svr4_jioctl.c compat_svr4
file compat/svr4/svr4_misc.c compat_svr4
file compat/svr4/svr4_net.c compat_svr4
file compat/svr4/svr4_signal.c compat_svr4
diff --git a/sys/compat/svr4/svr4_ioctl.c b/sys/compat/svr4/svr4_ioctl.c
index 510c5179d24..755442edbbc 100644
--- a/sys/compat/svr4/svr4_ioctl.c
+++ b/sys/compat/svr4/svr4_ioctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: svr4_ioctl.c,v 1.6 1996/08/01 00:50:52 niklas Exp $ */
+/* $OpenBSD: svr4_ioctl.c,v 1.7 1997/11/04 07:45:34 niklas Exp $ */
/* $NetBSD: svr4_ioctl.c,v 1.16 1996/04/11 12:54:41 christos Exp $ */
/*
@@ -50,6 +50,7 @@
#include <compat/svr4/svr4_syscallargs.h>
#include <compat/svr4/svr4_stropts.h>
#include <compat/svr4/svr4_ioctl.h>
+#include <compat/svr4/svr4_jioctl.h>
#include <compat/svr4/svr4_termios.h>
#include <compat/svr4/svr4_ttold.h>
#include <compat/svr4/svr4_filio.h>
@@ -137,13 +138,17 @@ svr4_sys_ioctl(p, v, retval)
fun = svr4_sock_ioctl;
break;
+ case SVR4_jIOC:
+ fun = svr4_jerq_ioctl;
+ break;
+
case SVR4_XIOC:
/* We do not support those */
- return EINVAL;
+ return (EINVAL);
default:
DPRINTF(("Unimplemented ioctl %lx\n", cmd));
- return 0; /* XXX: really ENOSYS */
+ return (0); /* XXX: really ENOSYS */
}
return (*fun)(fp, p, retval, SCARG(uap, fd), cmd, SCARG(uap, data));
}
diff --git a/sys/compat/svr4/svr4_ioctl.h b/sys/compat/svr4/svr4_ioctl.h
index 54d84100102..d35e96369ec 100644
--- a/sys/compat/svr4/svr4_ioctl.h
+++ b/sys/compat/svr4/svr4_ioctl.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: svr4_ioctl.h,v 1.3 1996/08/01 00:50:52 niklas Exp $ */
+/* $OpenBSD: svr4_ioctl.h,v 1.4 1997/11/04 07:45:35 niklas Exp $ */
/* $NetBSD: svr4_ioctl.h,v 1.5 1996/04/11 12:54:43 christos Exp $ */
/*
@@ -58,5 +58,7 @@ int svr4_fil_ioctl __P((struct file *, struct proc *, register_t *,
int, u_long, caddr_t));
int svr4_sock_ioctl __P((struct file *, struct proc *, register_t *,
int, u_long, caddr_t));
+int svr4_jerq_ioctl __P((struct file *, struct proc *, register_t *,
+ int, u_long, caddr_t));
#endif /* !_SVR4_IOCTL_H_ */
diff --git a/sys/compat/svr4/svr4_jioctl.c b/sys/compat/svr4/svr4_jioctl.c
new file mode 100644
index 00000000000..7da26ab4f1f
--- /dev/null
+++ b/sys/compat/svr4/svr4_jioctl.c
@@ -0,0 +1,77 @@
+/* $OpenBSD: svr4_jioctl.c,v 1.1 1997/11/04 07:45:33 niklas Exp $ */
+
+/*
+ * Copyright (c) 1997 Niklas Hallqvist
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Deal with the "j" svr4 ioctls ("j" stands for "jerq", the first windowing
+ * terminal).
+ */
+
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/errno.h>
+#include <sys/file.h>
+#include <sys/proc.h>
+#include <sys/systm.h>
+#include <sys/ttycom.h>
+
+#include <compat/svr4/svr4_ioctl.h>
+#include <compat/svr4/svr4_jioctl.h>
+#include <compat/svr4/svr4_util.h>
+
+int
+svr4_jerq_ioctl(fp, p, retval, fd, cmd, data)
+ struct file *fp;
+ struct proc *p;
+ register_t *retval;
+ int fd;
+ u_long cmd;
+ caddr_t data;
+{
+ struct svr4_jwinsize jws;
+ struct winsize ws;
+ int error;
+ int (*ctl) __P((struct file *, u_long, caddr_t, struct proc *)) =
+ fp->f_ops->fo_ioctl;
+
+ switch (cmd) {
+ case SVR4_JWINSIZE:
+ error = (*ctl)(fp, TIOCGWINSZ, (caddr_t)&ws, p);
+ if (error)
+ return (error);
+ jws.bytesx = ws.ws_col;
+ jws.bytesy = ws.ws_row;
+ jws.bitsx = ws.ws_xpixel;
+ jws.bitsy = ws.ws_ypixel;
+ return (copyout(&jws, data, sizeof (jws)));
+
+ default:
+ DPRINTF(("Unimplemented ioctl %lx\n", cmd));
+ return (EINVAL);
+ }
+}
diff --git a/sys/compat/svr4/svr4_jioctl.h b/sys/compat/svr4/svr4_jioctl.h
new file mode 100644
index 00000000000..b537a0dd5d4
--- /dev/null
+++ b/sys/compat/svr4/svr4_jioctl.h
@@ -0,0 +1,78 @@
+/* $OpenBSD: svr4_jioctl.h,v 1.1 1997/11/04 07:45:34 niklas Exp $ */
+
+/*
+ * Copyright (c) 1997 Niklas Hallqvist
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Deal with the "j" svr4 ioctls ("j" stands for "jerq", the first windowing
+ * terminal).
+ */
+
+#ifndef _SVR4_SYS_JIOCTL_H_
+#define _SVR4_SYS_JIOCTL_H_
+
+#define SVR4_jIOC ('j' << 8)
+
+#define SVR4_JBOOT (SVR4_jIOC|1)
+#define SVR4_JTERM (SVR4_jIOC|2)
+#define SVR4_JMPX (SVR4_jIOC|3)
+#define SVR4_JTIMO (SVR4_jIOC|4)
+#define SVR4_JWINSIZE (SVR4_jIOC|5)
+#define SVR4_JTIMOM (SVR4_jIOC|6)
+#define SVR4_JZOMBOOT (SVR4_jIOC|7)
+#define SVR4_JAGENT (SVR4_jIOC|9)
+#define SVR4_JTRUN (SVR4_jIOC|10)
+#define SVR4_JXTPROTO (SVR4_jIOC|11)
+
+struct svr4_jwinsize {
+ u_int8_t bytesx, bytesy;
+ u_int16_t bitsx, bitsy;
+};
+
+struct svr4_jerqmsg {
+ u_int8_t cmd, chan;
+};
+
+#define SVR4_C_SENDCHAR 1
+#define SVR4_C_NEW 2
+#define SVR4_C_UNBLK 3
+#define SVR4_C_DELETE 4
+#define SVR4_C_EXIT 5
+#define SVR4_C_DEFUNCT 6
+#define SVR4_C_SENDCHARS 7
+#define SVR4_C_RESHAPE 8
+#define SVR4_C_RUN 9
+#define SVR4_C_NOFLOW 10
+#define SVR4_C_YESFLOW 11
+
+struct svr4_bagent {
+ u_int32_t size;
+ void *src;
+ void *dest;
+};
+
+#endif /* _SVR4_SYS_JIOCTL_H_ */