diff options
Diffstat (limited to 'sys/compat')
-rw-r--r-- | sys/compat/svr4/files.svr4 | 3 | ||||
-rw-r--r-- | sys/compat/svr4/svr4_ioctl.c | 11 | ||||
-rw-r--r-- | sys/compat/svr4/svr4_ioctl.h | 4 | ||||
-rw-r--r-- | sys/compat/svr4/svr4_jioctl.c | 77 | ||||
-rw-r--r-- | sys/compat/svr4/svr4_jioctl.h | 78 |
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_ */ |