+
+/*
+ * Note: these tables are sorted by
+ * ioctl "code" (in ascending order).
+ */
+int fctls[] = { FIOCLEX, FIONCLEX, FIOASYNC, FIONBIO, FIONREAD, 0 };
+int tctls[] = {
+ TIOCGETD, TIOCSETD, TIOCHPCL, TIOCMODG, TIOCMODS,
+ TIOCGETP, TIOCSETP, TIOCSETN, TIOCEXCL, TIOCNXCL,
+ TIOCFLUSH,TIOCSETC, TIOCGETC, TIOCREMOTE,TIOCMGET,
+ TIOCMBIC, TIOCMBIS, TIOCMSET, TIOCSTART,TIOCSTOP,
+ TIOCPKT, TIOCNOTTY,TIOCSTI, TIOCOUTQ, TIOCGLTC,
+ TIOCSLTC, TIOCSPGRP,TIOCGPGRP,TIOCCDTR, TIOCSDTR,
+ TIOCCBRK, TIOCSBRK, TIOCLGET, TIOCLSET, TIOCLBIC,
+ TIOCLBIS, 0
+};
+
+/*
+ * Map an old style ioctl command to new.
+ */
+mapioctl(cmd)
+ int cmd;
+{
+ register int *map, c;
+
+ switch ((cmd >> 8) & 0xff) {
+
+ case 'f':
+ map = fctls;
+ break;
+
+ case 't':
+ map = tctls;
+ break;
+
+ default:
+ return (0);
+ }
+ while ((c = *map) && (c&0xff) < (cmd&0xff))
+ map++;
+ if (c && (c&0xff) == (cmd&0xff))
+ return (c);
+ return (0);
+}