Index: include/PatchLev.h
@@ -3,4 +3,4 @@
  *	directory.
  */
  
-#define _PatchLevel "45"
+#define _PatchLevel "46"
Index: include/ioctl.h
@@ -10,8 +10,7 @@
 #endif
 
 #define TIOCGETP	(('T'<< 8) | 0)
-#define TIOCSETP	(('T'<< 8) | 1)
-#define TIOCSETN	TIOCSETP
+#define TIOCSETN	(('T'<< 8) | 1)
 #define TIOCGETC	(('T'<< 8) | 2)
 #define TIOCSETC	(('T'<< 8) | 3)
 #define TIOCGLTC	(('T'<< 8) | 4)
@@ -40,6 +39,16 @@
 #define TIOCGFLAGS	(('T'<< 8) | 22)
 #define TIOCSFLAGS	(('T'<< 8) | 23)
 #define TIOCOUTQ	(('T'<< 8) | 24)
+#define TIOCSETP	(('T'<< 8) | 25)
+#define TIOCHPCL	(('T'<< 8) | 26)
+#define TIOCCAR		(('T'<< 8) | 27)
+#define TIOCNCAR	(('T'<< 8) | 28)
+#define TIOCWONLINE	(('T'<< 8) | 29)
+#define TIOCSFLAGSB	(('T'<< 8) | 30)
+#define TIOCGSTATE	(('T'<< 8) | 31)
+#define TIOCSSTATEB	(('T'<< 8) | 32)
+#define TIOCGVMIN	(('T'<< 8) | 33)
+#define TIOCSVMIN	(('T'<< 8) | 34)
 
 /* faked by the library */
 #define TIOCLBIS	(('T'<< 8) | 246)
@@ -181,6 +190,7 @@
 #define NOFLSH		0x0040
 #ifdef __MINT__
 #define TOSTOP		0x0100
+#define ECHOCTL		0x0400
 #endif /* __MINT__ */
 #endif /* _TERMIOS_H */
 #define TANDEM		0x1000
Index: include/limits.h
@@ -74,10 +74,11 @@
 #define _POSIX_LINK_MAX		32767
 #define _POSIX_MAX_CANON	64	/* <- NON-CONFORMING */
 #define _POSIX_MAX_INPUT	64	/* <- NON-CONFORMING */
-#define _POSIX_NAME_MAX		31	/* <- arbitrary */
-#define _POSIX_NGROUPS_MAX	512	/* <- arbitrary */
+/* #define _POSIX_NAME_MAX	31 */	/* <- arbitrary */
+#define _POSIX_NGROUPS_MAX	8	/* <- arbitrary */
 #define _POSIX_OPEN_MAX		32
 #define _POSIX_PATH_MAX		128	/* <- NON-CONFORMING */
+#define _POSIX_NAME_MAX		_POSIX_PATH_MAX
 #define _POSIX_PIPE_BUF		512
 #define _POSIX_STREAM_MAX	_NFILE
 
Index: include/linea.h
@@ -800,17 +800,20 @@
 
 #define linea0() 							\
 ({									\
-	    								\
+	register __LINEA *__xaline __asm__ ("a0");			\
+	register __FONT **__xfonts __asm__ ("a1");			\
+	register short (**__xfuncs) (void) __asm__ ("a2");		\
+									\
 	__asm__ volatile						\
 	("\
-		.word   0xA000; \
-		movl    a0,%0;	\
-		movl    a1,%1;	\
-		movl    a2,%2"						\
-	: "=g"(__aline), "=g"(__fonts), "=g"(__funcs)     /* outputs */	\
+		.word   0xA000"						\
+	: "=g"(__xaline), "=g"(__xfonts), "=g"(__xfuncs)  /* outputs */	\
 	: 						  /* inputs  */	\
 	: "d0", "d1", "d2", "a0", "a1", "a2"       /* clobbered regs */	\
 	);								\
+	__aline = __xaline;						\
+	__fonts = __xfonts;						\
+	__funcs = __xfuncs;						\
 })
 
 #define linea1() 							\
@@ -827,11 +830,10 @@
 
 #define linea2() 							\
 ({									\
-	short retvalue;							\
+	register short retvalue __asm__ ("d0");				\
 	__asm__ volatile						\
 	("\
-		.word   0xA002;  \
- 		movew	d0,%0"   \
+		.word   0xA002"   \
 	: "=g"(retvalue)				  /* outputs */	\
 	: 						  /* inputs  */	\
 	: "d0", "d1", "d2", "a0", "a1", "a2"       /* clobbered regs */	\
Index: include/mintbind.h
@@ -329,7 +329,69 @@
 	retvalue;							\
 })
 
+#if __GNUC__ > 1
+#define trap_1_wwllll(n, a, b, c, d, e)					\
+__extension__								\
+({									\
+	register long retvalue __asm__("d0");				\
+	short _a = (short)(a);						\
+	long  _b = (long) (b);						\
+	long  _c = (long) (c);						\
+	long  _d = (long) (d);						\
+	long  _e = (long) (e);						\
+	    								\
+	__asm__ volatile						\
+	("\
+		movl    %6,sp@-; \
+		movl    %5,sp@-; \
+		movl    %4,sp@-; \
+		movl    %3,sp@-; \
+		movw    %2,sp@-; \
+		movw    %1,sp@-; \
+		trap    #1;	\
+		lea     sp@(20),sp "					\
+	: "=r"(retvalue)			/* outputs */		\
+	: "g"(n), "r"(_a), "r"(_b), "r"(_c), "r"(_d), "r"(_e) /* inputs  */ \
+	: "d0", "d1", "d2", "a0", "a1", "a2"    /* clobbered regs */	\
+	  AND_MEMORY							\
+	);								\
+	retvalue;							\
+})
 #else
+#define trap_1_wwllll(n, a, b, c, d, e)					\
+({									\
+	register long retvalue __asm__("d0");				\
+	short _a = (short)(a);			\
+	long  _b = (long) (b);			\
+	long  _c = (long) (c);			\
+	long  _d = (long) (d);			\
+	long  _e = (long) (e);			\
+	    								\
+	__asm__ volatile						\
+	("\
+		movl    %4,sp@-; \
+		movl    %3,sp@-; \
+		movl    %2,sp@-; \
+		movl    %1,sp@-; \
+		movw    %0,sp@-	"					\
+	:					      /* outputs */	\
+	: "r"(_a), "r"(_b), "r"(_c), "r"(_d), "r"(_e) /* inputs  */	\
+	);								\
+									\
+	__asm__ volatile						\
+	("\
+		movw    %1,sp@-; \
+		trap    #1;	\
+		lea     sp@(20),sp "					\
+	: "=r"(retvalue)			/* outputs */		\
+	: "g"(n)				/* inputs  */		\
+	: "d0", "d1", "d2", "a0", "a1", "a2"    /* clobbered regs */	\
+	);								\
+	retvalue;							\
+})
+#endif
+
+#else
 
 #ifdef __GNUC__
 # ifndef __MSHORT__
@@ -355,6 +417,8 @@
 # define trap_1_wwww(n,a,b,c)	gemdos(n, a, b, c)
 # define trap_1_wwl(n, a, b)	gemdos(n, a, (long)(b))
 # define trap_1_wwwl(n,a,b,c)	gemdos(n, a, b, (long)(c))
+# define trap_1_wwllll(n, a, b, c, d, e) \
+		gemdos(n, a, (long)(b), (long)(c), (long)(d), (long)(e))
 #endif /* __LONG_TRAPS__ */
 
 #endif /* __GNUC_INLINE__ */
@@ -488,6 +552,38 @@
 		trap_1_www(0x13e, (short)(vec), (short)(sig))
 #define Suptime(uptime, avenrun)				\
 		trap_1_wll(0x13f, (long)(uptime), (long)(avenrun))
+#define Dxreaddir(len, handle, buf, xattr, xret)		\
+		trap_1_wwllll(0x142, (short)(len), (long)(handle), \
+			      (long)(buf), (long)(xattr), (long)(xret))
+#define Pseteuid(id)						\
+		(int)trap_1_ww(0x143, (short)(id))
+#define Psetegid(id)						\
+		(int)trap_1_ww(0x144, (short)(id))
+#define Psetauid(id)						\
+		(int)trap_1_ww(0x145, (short)(id))
+#define Pgetauid()						\
+		(int)trap_1_w(0x146)
+#define Pgetgroups(gidsetlen, gidset)				\
+		trap_1_wwl(0x147, (short)(gidsetlen), (long)(gidset))
+#define Psetgroups(gidsetlen, gidset)				\
+		trap_1_wwl(0x148, (short)(gidsetlen), (long)(gidset))
+#define Tsetitimer(which, interval, value, ointerval, ovalue)	\
+		trap_1_wwllll(0x149, (short)(which), (long)(interval), \
+			      (long)(value), (long)(ointerval), (long)(ovalue))
+#define Scookie(action, yummy)   \
+		trap_1_wwl(0x14a, (short)(action), (long)(yummy))
+#define Psetreuid(rid, eid)   \
+		(int)trap_1_www(0x14e, (short)(rid), (short)(eid))
+#define Psetregid(rid, eid)   \
+		(int)trap_1_www(0x14f, (short)(rid), (short)(eid))
+#define Sync()   \
+		trap_1_w(0x150)
+#define Shutdown(restart)  \
+		trap_1_wl(0x151, (long)(restart))
+#define Dreadlabel(path, label, maxlen)  \
+		trap_1_wllw(0x152, (long)(path), (long)(label), (short)(maxlen))
+#define Dwritelabel(path, label)  \
+		trap_1_wll(0x153, (long)(path), (long)(label))
 
 
 #endif /* __LATTICE__ */
Index: include/osbind.h
@@ -925,7 +925,7 @@
 	__asm__ volatile						\
 	("\
 		trap    #1;	\
-		lea	sp@(16),sp "					\
+		lea	sp@(14),sp "					\
 	: "=r"(retvalue)			/* outputs */		\
 	:					/* inputs  */		\
 	: "d0", "d1", "d2", "a0", "a1", "a2"    /* clobbered regs */	\
Index: include/param.h
@@ -12,4 +12,6 @@
 # define NCARGS		126		/* max. no. of characters in argv */
 #endif
 
+#define FSCALE 2048
+
 #endif /* _PARAM_H */
Index: include/termios.h
@@ -1,6 +1,10 @@
 #ifndef _TERMIOS_H
 #define _TERMIOS_H
 
+#ifndef _COMPILER_H
+#include <compiler.h>
+#endif
+
 #define VEOF	0
 #define VEOL	1
 #define VERASE	2
@@ -14,8 +18,59 @@
 #define VTIME	10
 #define VLNEXT	11		/* <-- Not POSIX */
 #define VWERASE	12		/* <-- Not POSIX */
-
-#define NCCS	(VWERASE + 1)
+#define VDSUSP	13		/* <-- Not POSIX */
+#define VREPRINT 14		/* <-- Not POSIX */
+#define VFLUSHO	15		/* <-- Not POSIX */
+
+#define NCCS	(VFLUSHO + 1)
+
+/* Canonical values for control characters. */
+#ifndef _POSIX_VDISABLE
+#define _POSIX_VDISABLE ((unsigned char) 0)
+#endif
+
+#ifndef CEOF
+#define	CEOF	('d' & 0x1f)
+#endif
+#ifndef CEOL
+#define	CEOL	('m' & 0x1f)
+#endif
+#ifndef CERASE
+#define	CERASE	('h' & 0x1f)
+#endif
+#ifndef CINTR
+#define	CINTR	('c' & 0x1f)
+#endif
+#ifndef CKILL
+#define	CKILL	('u' & 0x1f)
+#endif
+#ifndef CQUIT
+#define	CQUIT	28
+#endif
+#ifndef CSUSP
+#define	CSUSP	('z' & 0x1f)
+#endif
+#ifndef CSTART
+#define	CSTART	('q' & 0x1f)
+#endif
+#ifndef CSTOP
+#define	CSTOP	('s' & 0x1f)
+#endif
+#ifndef CLNEXT
+#define	CLNEXT	('v' & 0x1f)
+#endif
+#ifndef CWERASE
+#define	CWERASE	('w' & 0x1f)
+#endif
+#ifndef CDSUSP
+#define	CDSUSP	('y' & 0x1f)
+#endif
+#ifndef CRPRNT
+#define	CRPRNT	('r' & 0x1f)
+#endif
+#ifndef CFLUSHO
+#define CFLUSHO	('o' & 0x1f)
+#endif
 
 typedef unsigned short tcflag_t;
 typedef unsigned short speed_t;
@@ -50,15 +105,17 @@
 /* control modes */
 #define CLOCAL	0x0001
 #define CREAD	0x0002
-#define CS5	0x0004
+/* next four must agree with _TF_?BIT */
+#define CS5	0x000C
 #define CS6	0x0008
-#define CS7	0x0010
-#define CS8	0x0020
-# define CSIZE	(CS5 | CS6 | CS7 | CS8)
+#define CS7	0x0004
+#define CS8	0x0000
+# define CSIZE	0x000C
 #define CSTOPB	0x0040
 #define HUPCL	0x0080
 #define PARENB	0x0100
 #define PARODD	0x0200
+#define CRTSCTS	0x2000		/* <-- Not POSIX(?) */
 
 /* local modes */
 #define ECHOE	0x0001
@@ -75,6 +132,7 @@
 #define IEXTEN	0x0080
 #ifndef _IOCTL_H
 #define TOSTOP	0x0100
+#define ECHOCTL	0x0400
 #endif /* _IOCTL_H */
 
 /* actions for tcflow() */
@@ -103,6 +161,13 @@
 #define _TF_7BIT	0x4
 #define _TF_6BIT	0x8
 #define _TF_5BIT	0xC
+#define _TF_CAR		0x800
+#define _TF_BRKINT	0x80
+
+#define _TS_BLIND	0x800
+#define _TS_HOLD	0x1000
+#define _TS_HPCL	0x4000
+#define _TS_COOKED	0x8000
 
 /* baud rate codes */
 #ifndef _IOCTL_H
Index: include/time.h
@@ -14,7 +14,7 @@
 extern "C" {
 #endif
 
-#define CLOCKS_PER_SEC  ((clock_t) 200)           /* clock ticks per second */
+#define CLOCKS_PER_SEC	(200UL)			  /* clock ticks per second */
 #define CLK_TCK         CLOCKS_PER_SEC            /* old name for this */
 
 #ifndef NULL
@@ -57,6 +57,15 @@
 	int	tz_minuteswest;	/* minues west of GMT */
 	int	tz_dsttime;	/* daylight savings time correction */
 };
+
+#define	ITIMER_REAL	0
+#define	ITIMER_VIRTUAL	1
+#define	ITIMER_PROF	2
+
+struct	itimerval {
+	struct	timeval it_interval;	/* timer interval */
+	struct	timeval it_value;	/* current value */
+};
 #endif
 
 __EXTERN clock_t	clock	 __PROTO((void));
@@ -77,6 +86,9 @@
 __EXTERN clock_t	_clock	 __PROTO((void));
 __EXTERN int	gettimeofday __PROTO((struct timeval *, struct timezone *));
 __EXTERN int	settimeofday __PROTO((struct timeval *, struct timezone *));
+__EXTERN int	getitimer __PROTO ((int, struct itimerval *));
+__EXTERN int	setitimer __PROTO ((int, const struct itimerval *,
+				    struct itimerval *));
 
 #ifndef _FD_SET_T
 #define _FD_SET_T unsigned long
Index: include/unistd.h
@@ -41,7 +41,9 @@
 #define _POSIX_VERSION		0L		/* <- NON-CONFORMING */
 #endif
 #define _POSIX_CHOWN_RESTRICTED 0
+#ifndef _TERMIOS_H
 #define _POSIX_VDISABLE		0
+#endif
 
 #if 0					/* this depends on the file system */
 #define _POSIX_NO_TRUNC		-1
@@ -123,6 +125,8 @@
 #ifndef _POSIX_SOURCE
 __EXTERN int	_bsd_getpgrp __PROTO((int));
 __EXTERN int	_bsd_setpgrp __PROTO((int, int));
+__EXTERN int    getdtablesize __PROTO ((void));
+__EXTERN int	getloadavg __PROTO((double *, int));
 __EXTERN char *	getwd	__PROTO((char *));
 __EXTERN int	getopt	__PROTO((int, char * const *, const char *));
 __EXTERN int	getpagesize __PROTO((void));
