Cleaned up the struct sgtty workaround and made it more generic.
authordtrg <none@none>
Fri, 24 Jun 2005 22:11:27 +0000 (22:11 +0000)
committerdtrg <none@none>
Fri, 24 Jun 2005 22:11:27 +0000 (22:11 +0000)
util/int/m_ioctl.c
util/int/monstruct.c
util/int/sysidf.h

index 6842605..23fa9dd 100644 (file)
@@ -10,7 +10,9 @@
 #include       "mem.h"
 #include       "warn.h"
 
+#ifdef WANT_SGTTY
 #include       <sgtty.h>
+#endif
 
 #ifdef V7IOCTL                         /* define the proper V7 requests */
 
@@ -45,7 +47,9 @@ int do_ioctl(fd, req, addr)
        ptr addr;
 {
        register long e;
+#ifdef WANT_SGTTY
        struct sgttyb sg_buf;
+#endif
 
 #ifdef BSD_X                           /* from system.h */
 #ifndef        V7IOCTL
@@ -66,6 +70,8 @@ int do_ioctl(fd, req, addr)
 #ifdef V7IOCTL
        switch (req) {                  /* translate the V7 requests */
                                        /* and reject the non-V7 ones */
+                                       
+#ifdef WANT_SGTTY
        case V7IOGETP:
                req = TIOCGETP;
                break;
@@ -81,6 +87,8 @@ int do_ioctl(fd, req, addr)
        case V7IOHPCL:
                req = TIOCHPCL;
                break;
+#endif
+
 #ifdef BSD_X                           /* from system.h */
        case V7IOSETN:
                req = TIOCSETN;
@@ -108,11 +116,7 @@ int do_ioctl(fd, req, addr)
                /****** Struct sgttyb ioctl's ********/
                /*************************************/
 
-#if 0
-       /* FIXME: I'm not entirely certain what these do; I think they have
-        * to do with serial port manipulation. If so, they need to be rewritten
-        * to use the Posix standards. ---dtrg */
-        
+#ifdef WANT_SGTTY
        case TIOCGETP:
                /* Get fd's current param's and store at dsp2 */
                if (    (e = ioctl(fd, req, (char *) &sg_buf)) == -1
index 012a364..71a99d9 100644 (file)
 #include       <time.h>
 #endif
 #include       <sys/times.h>
+
+#ifdef WANT_SGTTY
 #include       <sgtty.h>
+#endif
 
 #ifdef BSD_X                           /* from system.h */
 #include       <sys/timeb.h>
@@ -85,8 +88,9 @@ int tms2mem(addr, tmsb)
        return 1;
 }
 
-#if 0
-/* FIXME: see the related fixme in m_ioctlc. ---dtrg */
+#ifdef WANT_SGTTY
+/* FIXME: see the related fixme in sysidf.h. --- dtrg */
+
 int sgttyb2mem(addr, sgttybb)
        ptr addr;
        struct sgttyb *sgttybb;
@@ -146,8 +150,9 @@ PRIVATE unsigned long mem_ldfld(addr, offset, length)
        return mem_ldu(addr + offset, length);
 }
 
-#if 0
-/* FIXME: see the related fixme in m_ioctlc. ---dtrg */
+#ifdef WANT_SGTTY
+/* FIXME: see the related fixme in sysidf.h. --- dtrg */
+
 int mem2sgtty(addr, sgttybb)
        ptr addr;
        struct sgttyb *sgttybb;
index 4286c42..8297f12 100644 (file)
@@ -19,3 +19,9 @@
 #define        SYS_V
 #endif /* SYS_5 */
 
+/* FIXME: A lot of modern systems, including Linux, don't have struct sgtty
+ * and associated ioctls. If you *do* have it, uncomment this. All this
+ * code should probably be rewritten one day to use termios instead, which
+ * seems to be the standard that won. --- dtrg */
+//#define WANT_SGTTY