summaryrefslogtreecommitdiffstats
path: root/sys/compat/svr4
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2009-05-08 20:06:37 +0000
committered <ed@FreeBSD.org>2009-05-08 20:06:37 +0000
commit59fb74ae926737bdc329e76c841840885176aabf (patch)
treeb2173233418c7cfee74dadc74c83e46c086fb34a /sys/compat/svr4
parent27e9e37befaa5cc036d458007d918dfcf57f6e86 (diff)
downloadFreeBSD-src-59fb74ae926737bdc329e76c841840885176aabf.zip
FreeBSD-src-59fb74ae926737bdc329e76c841840885176aabf.tar.gz
Burn TTY ioctl bridges in compat layers.
I really don't want any pieces of code to include ioctl_compat.h, so let the ibcs2 and svr4 compat leave sgtty alone. If they want to support sgtty, they should emulate it on top of termios, not sgtty. The code has been marked with BURN_BRIDGES for a long time. ibcs2 and svr4 are not really popular pieces of code anyway.
Diffstat (limited to 'sys/compat/svr4')
-rw-r--r--sys/compat/svr4/svr4_ioctl.c8
-rw-r--r--sys/compat/svr4/svr4_ioctl.h2
-rw-r--r--sys/compat/svr4/svr4_ttold.c382
-rw-r--r--sys/compat/svr4/svr4_ttold.h122
4 files changed, 0 insertions, 514 deletions
diff --git a/sys/compat/svr4/svr4_ioctl.c b/sys/compat/svr4/svr4_ioctl.c
index b192a2c..4e91c4b 100644
--- a/sys/compat/svr4/svr4_ioctl.c
+++ b/sys/compat/svr4/svr4_ioctl.c
@@ -46,7 +46,6 @@ __FBSDID("$FreeBSD$");
#include <compat/svr4/svr4_stropts.h>
#include <compat/svr4/svr4_ioctl.h>
#include <compat/svr4/svr4_termios.h>
-#include <compat/svr4/svr4_ttold.h>
#include <compat/svr4/svr4_filio.h>
#include <compat/svr4/svr4_sockio.h>
@@ -119,13 +118,6 @@ svr4_sys_ioctl(td, uap)
#endif
switch (cmd & 0xff00) {
-#ifndef BURN_BRIDGES
- case SVR4_tIOC:
- DPRINTF(("ttold\n"));
- fun = svr4_ttold_ioctl;
- break;
-#endif
-
case SVR4_TIOC:
DPRINTF(("term\n"));
fun = svr4_term_ioctl;
diff --git a/sys/compat/svr4/svr4_ioctl.h b/sys/compat/svr4/svr4_ioctl.h
index e0633a7..98b67a1 100644
--- a/sys/compat/svr4/svr4_ioctl.h
+++ b/sys/compat/svr4/svr4_ioctl.h
@@ -52,8 +52,6 @@ int svr4_stream_ioctl(struct file *, struct thread *, register_t *,
int, u_long, caddr_t);
int svr4_term_ioctl(struct file *, struct thread *, register_t *,
int, u_long, caddr_t);
-int svr4_ttold_ioctl(struct file *, struct thread *, register_t *,
- int, u_long, caddr_t);
int svr4_fil_ioctl (struct file *, struct thread *, register_t *,
int, u_long, caddr_t);
int svr4_sock_ioctl (struct file *, struct thread *, register_t *,
diff --git a/sys/compat/svr4/svr4_ttold.c b/sys/compat/svr4/svr4_ttold.c
deleted file mode 100644
index 3575607..0000000
--- a/sys/compat/svr4/svr4_ttold.c
+++ /dev/null
@@ -1,382 +0,0 @@
-/*-
- * Copyright (c) 1998 Mark Newton
- * Copyright (c) 1994 Christos Zoulas
- * 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#ifndef BURN_BRIDGES
-
-#include <sys/param.h>
-#include <sys/proc.h>
-#include <sys/systm.h>
-#include <sys/file.h>
-#include <sys/filedesc.h>
-#include <sys/ioctl_compat.h>
-#include <sys/termios.h>
-
-#include <compat/svr4/svr4.h>
-#include <compat/svr4/svr4_util.h>
-#include <compat/svr4/svr4_ttold.h>
-#include <compat/svr4/svr4_ioctl.h>
-
-
-static void svr4_tchars_to_bsd_tchars(const struct svr4_tchars *st,
- struct tchars *bt);
-static void bsd_tchars_to_svr4_tchars(const struct tchars *bt,
- struct svr4_tchars *st);
-static void svr4_sgttyb_to_bsd_sgttyb(const struct svr4_sgttyb *ss,
- struct sgttyb *bs);
-static void bsd_sgttyb_to_svr4_sgttyb(const struct sgttyb *bs,
- struct svr4_sgttyb *ss);
-static void svr4_ltchars_to_bsd_ltchars(const struct svr4_ltchars *sl,
- struct ltchars *bl);
-static void bsd_ltchars_to_svr4_ltchars(const struct ltchars *bl,
- struct svr4_ltchars *sl);
-
-#ifdef DEBUG_SVR4
-static void print_svr4_sgttyb(const char *, struct svr4_sgttyb *);
-static void print_svr4_tchars(const char *, struct svr4_tchars *);
-static void print_svr4_ltchars(const char *, struct svr4_ltchars *);
-
-static void
-print_svr4_sgttyb(str, ss)
- const char *str;
- struct svr4_sgttyb *ss;
-{
-
- uprintf("%s\nispeed=%o ospeed=%o ", str, ss->sg_ispeed, ss->sg_ospeed);
- uprintf("erase=%o kill=%o flags=%o\n", ss->sg_erase, ss->sg_kill,
- ss->sg_flags);
-}
-
-static void
-print_svr4_tchars(str, st)
- const char *str;
- struct svr4_tchars *st;
-{
- uprintf("%s\nintrc=%o quitc=%o ", str, st->t_intrc, st->t_quitc);
- uprintf("startc=%o stopc=%o eofc=%o brkc=%o\n", st->t_startc,
- st->t_stopc, st->t_eofc, st->t_brkc);
-}
-
-static void
-print_svr4_ltchars(str, sl)
- const char *str;
- struct svr4_ltchars *sl;
-{
- uprintf("%s\nsuspc=%o dsuspc=%o ", str, sl->t_suspc, sl->t_dsuspc);
- uprintf("rprntc=%o flushc=%o werasc=%o lnextc=%o\n", sl->t_rprntc,
- sl->t_flushc, sl->t_werasc, sl->t_lnextc);
-}
-#endif /* DEBUG_SVR4 */
-
-static void
-svr4_tchars_to_bsd_tchars(st, bt)
- const struct svr4_tchars *st;
- struct tchars *bt;
-{
- bt->t_intrc = st->t_intrc;
- bt->t_quitc = st->t_quitc;
- bt->t_startc = st->t_startc;
- bt->t_stopc = st->t_stopc;
- bt->t_eofc = st->t_eofc;
- bt->t_brkc = st->t_brkc;
-}
-
-
-static void
-bsd_tchars_to_svr4_tchars(bt, st)
- const struct tchars *bt;
- struct svr4_tchars *st;
-{
- st->t_intrc = bt->t_intrc;
- st->t_quitc = bt->t_quitc;
- st->t_startc = bt->t_startc;
- st->t_stopc = bt->t_stopc;
- st->t_eofc = bt->t_eofc;
- st->t_brkc = bt->t_brkc;
-}
-
-
-static void
-svr4_sgttyb_to_bsd_sgttyb(ss, bs)
- const struct svr4_sgttyb *ss;
- struct sgttyb *bs;
-{
- bs->sg_ispeed = ss->sg_ispeed;
- bs->sg_ospeed = ss->sg_ospeed;
- bs->sg_erase = ss->sg_erase;
- bs->sg_kill = ss->sg_kill;
- bs->sg_flags = ss->sg_flags;
-};
-
-
-static void
-bsd_sgttyb_to_svr4_sgttyb(bs, ss)
- const struct sgttyb *bs;
- struct svr4_sgttyb *ss;
-{
- ss->sg_ispeed = bs->sg_ispeed;
- ss->sg_ospeed = bs->sg_ospeed;
- ss->sg_erase = bs->sg_erase;
- ss->sg_kill = bs->sg_kill;
- ss->sg_flags = bs->sg_flags;
-}
-
-
-static void
-svr4_ltchars_to_bsd_ltchars(sl, bl)
- const struct svr4_ltchars *sl;
- struct ltchars *bl;
-{
- bl->t_suspc = sl->t_suspc;
- bl->t_dsuspc = sl->t_dsuspc;
- bl->t_rprntc = sl->t_rprntc;
- bl->t_flushc = sl->t_flushc;
- bl->t_werasc = sl->t_werasc;
- bl->t_lnextc = sl->t_lnextc;
-}
-
-
-static void
-bsd_ltchars_to_svr4_ltchars(bl, sl)
- const struct ltchars *bl;
- struct svr4_ltchars *sl;
-{
- sl->t_suspc = bl->t_suspc;
- sl->t_dsuspc = bl->t_dsuspc;
- sl->t_rprntc = bl->t_rprntc;
- sl->t_flushc = bl->t_flushc;
- sl->t_werasc = bl->t_werasc;
- sl->t_lnextc = bl->t_lnextc;
-}
-
-
-int
-svr4_ttold_ioctl(fp, td, retval, fd, cmd, data)
- struct file *fp;
- struct thread *td;
- register_t *retval;
- int fd;
- u_long cmd;
- caddr_t data;
-{
- int error;
-
- *retval = 0;
-
- switch (cmd) {
- case SVR4_TIOCGPGRP:
- {
- pid_t pid;
-
- if ((error = fo_ioctl(fp, TIOCGPGRP, (caddr_t) &pid,
- td->td_ucred, td)) != 0)
- return error;
-
- DPRINTF(("TIOCGPGRP %d\n", pid));
-
- if ((error = copyout(&pid, data, sizeof(pid))) != 0)
- return error;
-
- }
-
- case SVR4_TIOCSPGRP:
- {
- pid_t pid;
-
- if ((error = copyin(data, &pid, sizeof(pid))) != 0)
- return error;
-
- DPRINTF(("TIOCSPGRP %d\n", pid));
-
- return fo_ioctl(fp, TIOCSPGRP, (caddr_t) &pid,
- td->td_ucred, td);
- }
-
- case SVR4_TIOCGSID:
- {
-#if defined(TIOCGSID)
- pid_t pid;
- if ((error = fo_ioctl(fp, TIOCGSID, (caddr_t) &pid,
- td->td_ucred, td)) != 0)
- return error;
-
- DPRINTF(("TIOCGSID %d\n", pid));
-
- return copyout(&pid, data, sizeof(pid));
-#else
- uprintf("ioctl(TIOCGSID) for pid %d unsupported\n", td->td_proc->p_pid);
- return EINVAL;
-#endif
- }
-
- case SVR4_TIOCGETP:
- {
- struct sgttyb bs;
- struct svr4_sgttyb ss;
-
- error = fo_ioctl(fp, TIOCGETP, (caddr_t) &bs,
- td->td_ucred, td);
- if (error)
- return error;
-
- bsd_sgttyb_to_svr4_sgttyb(&bs, &ss);
-#ifdef DEBUG_SVR4
- print_svr4_sgttyb("SVR4_TIOCGETP", &ss);
-#endif /* DEBUG_SVR4 */
- return copyout(&ss, data, sizeof(ss));
- }
-
- case SVR4_TIOCSETP:
- case SVR4_TIOCSETN:
- {
- struct sgttyb bs;
- struct svr4_sgttyb ss;
-
- if ((error = copyin(data, &ss, sizeof(ss))) != 0)
- return error;
-
- svr4_sgttyb_to_bsd_sgttyb(&ss, &bs);
-#ifdef DEBUG_SVR4
- print_svr4_sgttyb("SVR4_TIOCSET{P,N}", &ss);
-#endif /* DEBUG_SVR4 */
- cmd = (cmd == SVR4_TIOCSETP) ? TIOCSETP : TIOCSETN;
- return fo_ioctl(fp, cmd, (caddr_t) &bs,
- td->td_ucred, td);
- }
-
- case SVR4_TIOCGETC:
- {
- struct tchars bt;
- struct svr4_tchars st;
-
- error = fo_ioctl(fp, TIOCGETC, (caddr_t) &bt,
- td->td_ucred, td);
- if (error)
- return error;
-
- bsd_tchars_to_svr4_tchars(&bt, &st);
-#ifdef DEBUG_SVR4
- print_svr4_tchars("SVR4_TIOCGETC", &st);
-#endif /* DEBUG_SVR4 */
- return copyout(&st, data, sizeof(st));
- }
-
- case SVR4_TIOCSETC:
- {
- struct tchars bt;
- struct svr4_tchars st;
-
- if ((error = copyin(data, &st, sizeof(st))) != 0)
- return error;
-
- svr4_tchars_to_bsd_tchars(&st, &bt);
-#ifdef DEBUG_SVR4
- print_svr4_tchars("SVR4_TIOCSETC", &st);
-#endif /* DEBUG_SVR4 */
- return fo_ioctl(fp, TIOCSETC, (caddr_t) &bt,
- td->td_ucred, td);
- }
-
- case SVR4_TIOCGLTC:
- {
- struct ltchars bl;
- struct svr4_ltchars sl;
-
- error = fo_ioctl(fp, TIOCGLTC, (caddr_t) &bl,
- td->td_ucred, td);
- if (error)
- return error;
-
- bsd_ltchars_to_svr4_ltchars(&bl, &sl);
-#ifdef DEBUG_SVR4
- print_svr4_ltchars("SVR4_TIOCGLTC", &sl);
-#endif /* DEBUG_SVR4 */
- return copyout(&sl, data, sizeof(sl));
- }
-
- case SVR4_TIOCSLTC:
- {
- struct ltchars bl;
- struct svr4_ltchars sl;
-
- if ((error = copyin(data, &sl, sizeof(sl))) != 0)
- return error;
-
- svr4_ltchars_to_bsd_ltchars(&sl, &bl);
-#ifdef DEBUG_SVR4
- print_svr4_ltchars("SVR4_TIOCSLTC", &sl);
-#endif /* DEBUG_SVR4 */
- return fo_ioctl(fp, TIOCSLTC, (caddr_t) &bl,
- td->td_ucred, td);
- }
-
- case SVR4_TIOCLGET:
- {
- int flags;
- if ((error = fo_ioctl(fp, TIOCLGET, (caddr_t) &flags,
- td->td_ucred, td)) != 0)
- return error;
- DPRINTF(("SVR4_TIOCLGET %o\n", flags));
- return copyout(&flags, data, sizeof(flags));
- }
-
- case SVR4_TIOCLSET:
- case SVR4_TIOCLBIS:
- case SVR4_TIOCLBIC:
- {
- int flags;
-
- if ((error = copyin(data, &flags, sizeof(flags))) != 0)
- return error;
-
- switch (cmd) {
- case SVR4_TIOCLSET:
- cmd = TIOCLSET;
- break;
- case SVR4_TIOCLBIS:
- cmd = TIOCLBIS;
- break;
- case SVR4_TIOCLBIC:
- cmd = TIOCLBIC;
- break;
- }
-
- DPRINTF(("SVR4_TIOCL{SET,BIS,BIC} %o\n", flags));
- return fo_ioctl(fp, cmd, (caddr_t) &flags,
- td->td_ucred, td);
- }
-
- default:
- DPRINTF(("Unknown svr4 ttold %lx\n", cmd));
- return 0; /* ENOSYS really */
- }
-}
-
-#endif /* BURN_BRIDGES */
diff --git a/sys/compat/svr4/svr4_ttold.h b/sys/compat/svr4/svr4_ttold.h
deleted file mode 100644
index aecde20..0000000
--- a/sys/compat/svr4/svr4_ttold.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*-
- * Copyright (c) 1998 Mark Newton
- * Copyright (c) 1994 Christos Zoulas
- * 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.
- *
- * $FreeBSD$
- */
-
-#ifndef _SVR4_TTOLD_H_
-#define _SVR4_TTOLD_H_
-
-struct svr4_tchars {
- char t_intrc;
- char t_quitc;
- char t_startc;
- char t_stopc;
- char t_eofc;
- char t_brkc;
-};
-
-struct svr4_sgttyb {
- u_char sg_ispeed;
- u_char sg_ospeed;
- u_char sg_erase;
- u_char sg_kill;
- int sg_flags;
-};
-
-struct svr4_ltchars {
- char t_suspc;
- char t_dsuspc;
- char t_rprntc;
- char t_flushc;
- char t_werasc;
- char t_lnextc;
-};
-
-#ifndef SVR4_tIOC
-#define SVR4_tIOC ('t' << 8)
-#endif
-
-#define SVR4_TIOCGETD (SVR4_tIOC | 0)
-#define SVR4_TIOCSETD (SVR4_tIOC | 1)
-#define SVR4_TIOCHPCL (SVR4_tIOC | 2)
-#define SVR4_TIOCGETP (SVR4_tIOC | 8)
-#define SVR4_TIOCSETP (SVR4_tIOC | 9)
-#define SVR4_TIOCSETN (SVR4_tIOC | 10)
-#define SVR4_TIOCEXCL (SVR4_tIOC | 13)
-#define SVR4_TIOCNXCL (SVR4_tIOC | 14)
-#define SVR4_TIOCFLUSH (SVR4_tIOC | 16)
-#define SVR4_TIOCSETC (SVR4_tIOC | 17)
-#define SVR4_TIOCGETC (SVR4_tIOC | 18)
-#define SVR4_TIOCGPGRP (SVR4_tIOC | 20)
-#define SVR4_TIOCSPGRP (SVR4_tIOC | 21)
-#define SVR4_TIOCGSID (SVR4_tIOC | 22)
-#define SVR4_TIOCSTI (SVR4_tIOC | 23)
-#define SVR4_TIOCSSID (SVR4_tIOC | 24)
-#define SVR4_TIOCMSET (SVR4_tIOC | 26)
-#define SVR4_TIOCMBIS (SVR4_tIOC | 27)
-#define SVR4_TIOCMBIC (SVR4_tIOC | 28)
-#define SVR4_TIOCMGET (SVR4_tIOC | 29)
-#define SVR4_TIOCREMOTE (SVR4_tIOC | 30)
-#define SVR4_TIOCSIGNAL (SVR4_tIOC | 31)
-
-#define SVR4_TIOCSTART (SVR4_tIOC | 110)
-#define SVR4_TIOCSTOP (SVR4_tIOC | 111)
-#define SVR4_TIOCNOTTY (SVR4_tIOC | 113)
-#define SVR4_TIOCOUTQ (SVR4_tIOC | 115)
-#define SVR4_TIOCGLTC (SVR4_tIOC | 116)
-#define SVR4_TIOCSLTC (SVR4_tIOC | 117)
-#define SVR4_TIOCCDTR (SVR4_tIOC | 120)
-#define SVR4_TIOCSDTR (SVR4_tIOC | 121)
-#define SVR4_TIOCCBRK (SVR4_tIOC | 122)
-#define SVR4_TIOCSBRK (SVR4_tIOC | 123)
-#define SVR4_TIOCLGET (SVR4_tIOC | 124)
-#define SVR4_TIOCLSET (SVR4_tIOC | 125)
-#define SVR4_TIOCLBIC (SVR4_tIOC | 126)
-#define SVR4_TIOCLBIS (SVR4_tIOC | 127)
-
-#define SVR4_TIOCM_LE 0001
-#define SVR4_TIOCM_DTR 0002
-#define SVR4_TIOCM_RTS 0004
-#define SVR4_TIOCM_ST 0010
-#define SVR4_TIOCM_SR 0020
-#define SVR4_TIOCM_CTS 0040
-#define SVR4_TIOCM_CAR 0100
-#define SVR4_TIOCM_CD SVR4_TIOCM_CAR
-#define SVR4_TIOCM_RNG 0200
-#define SVR4_TIOCM_RI SVR4_TIOCM_RNG
-#define SVR4_TIOCM_DSR 0400
-
-#define SVR4_OTTYDISC 0
-#define SVR4_NETLDISC 1
-#define SVR4_NTTYDISC 2
-#define SVR4_TABLDISC 3
-#define SVR4_NTABLDISC 4
-#define SVR4_MOUSELDISC 5
-#define SVR4_KBDLDISC 6
-
-#endif /* !_SVR4_TTOLD_H_ */
OpenPOWER on IntegriCloud