Browse Source

Cleaned up the struct sgtty workaround and made it more generic.

dtrg 19 years ago
parent
commit
e2cf5fbce2
3 changed files with 24 additions and 9 deletions
  1. 9 5
      util/int/m_ioctl.c
  2. 9 4
      util/int/monstruct.c
  3. 6 0
      util/int/sysidf.h

+ 9 - 5
util/int/m_ioctl.c

@@ -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

+ 9 - 4
util/int/monstruct.c

@@ -16,7 +16,10 @@
 #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;

+ 6 - 0
util/int/sysidf.h

@@ -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