Bodge the ancient em monitor library into building as a libsys for the em22
plat. It's completely untested, but it builds and makes e.out executables.
This commit is contained in:
		
							parent
							
								
									13a7abdd69
								
							
						
					
					
						commit
						7eaa235fd1
					
				
					 101 changed files with 202 additions and 19 deletions
				
			
		|  | @ -18,7 +18,7 @@ extern void _close(int); | ||||||
| 
 | 
 | ||||||
| #define	FAIL	127 | #define	FAIL	127 | ||||||
| 
 | 
 | ||||||
| extern const char **_penvp; | extern const char **environ; | ||||||
| static const char *exec_tab[] = { | static const char *exec_tab[] = { | ||||||
| 	"sh",			/* argv[0] */ | 	"sh",			/* argv[0] */ | ||||||
| 	"-c",			/* argument to the shell */ | 	"-c",			/* argument to the shell */ | ||||||
|  | @ -39,7 +39,7 @@ system(const char *str) | ||||||
| 			_close(i); | 			_close(i); | ||||||
| 		if (!str) str = "cd .";		/* just testing for a shell */ | 		if (!str) str = "cd .";		/* just testing for a shell */ | ||||||
| 		exec_tab[2] = str;		/* fill in command */ | 		exec_tab[2] = str;		/* fill in command */ | ||||||
| 		_execve("/bin/sh", exec_tab, _penvp); | 		_execve("/bin/sh", exec_tab, environ); | ||||||
| 		/* get here if execve fails ... */ | 		/* get here if execve fails ... */ | ||||||
| 		_exit(FAIL);	/* see manual page */ | 		_exit(FAIL);	/* see manual page */ | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| /* $Id$ */ |  | ||||||
| _cleanup(){} |  | ||||||
|  | @ -93,6 +93,6 @@ killbss() | ||||||
| extern int catch(); | extern int catch(); | ||||||
| 
 | 
 | ||||||
| int (*handler)() = catch; | int (*handler)() = catch; | ||||||
| char **argv = 0, **environ = 0; | char **argv = 0; | ||||||
| int argc = 0; | int argc = 0; | ||||||
| char *MainLB = 0; | char *MainLB = 0; | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
|  mes 2,EM_WSIZE,EM_PSIZE |  mes 2,EM_WSIZE,EM_PSIZE | ||||||
|  exp $_execl |  exp $_execl | ||||||
|  pro $_execl,0 |  pro $_execl,0 | ||||||
|  lae _penvp |  lae environ | ||||||
|  loi EM_PSIZE |  loi EM_PSIZE | ||||||
|  lal EM_PSIZE |  lal EM_PSIZE | ||||||
|  lal 0 |  lal 0 | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
|  mes 2,EM_WSIZE,EM_PSIZE |  mes 2,EM_WSIZE,EM_PSIZE | ||||||
|  exp $execl |  exp $execl | ||||||
|  pro $execl,0 |  pro $execl,0 | ||||||
|  lae _penvp |  lae environ | ||||||
|  loi EM_PSIZE |  loi EM_PSIZE | ||||||
|  lal EM_PSIZE |  lal EM_PSIZE | ||||||
|  lal 0 |  lal 0 | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
|  mes 2,EM_WSIZE,EM_PSIZE |  mes 2,EM_WSIZE,EM_PSIZE | ||||||
|  exp $execv |  exp $execv | ||||||
|  pro $execv,0 |  pro $execv,0 | ||||||
|  lae _penvp |  lae environ | ||||||
|  loi EM_PSIZE |  loi EM_PSIZE | ||||||
|  lal 0 |  lal 0 | ||||||
|  loi 2*EM_PSIZE |  loi 2*EM_PSIZE | ||||||
							
								
								
									
										12
									
								
								plat/em/libsys/isatty.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								plat/em/libsys/isatty.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | /* $Id$ */ | ||||||
|  | isatty(f) | ||||||
|  | { | ||||||
|  | 	char buf[128]; | ||||||
|  | 	/* not a sgttyb struct; it might not be large enough;
 | ||||||
|  | 	   I know for a fact that it is'nt large enough on PC/IX, | ||||||
|  | 	   where gtty is an ioctl(..., TCGETA, ...) | ||||||
|  | 	*/ | ||||||
|  | 
 | ||||||
|  | 	if (gtty(f, buf) < 0) return 0; | ||||||
|  | 	return 1; | ||||||
|  | } | ||||||
|  | @ -12,6 +12,7 @@ installable { | ||||||
| 	map = { | 	map = { | ||||||
| 		"+libs", | 		"+libs", | ||||||
|         "./include+pkg", |         "./include+pkg", | ||||||
|  |         ["$(PLATIND)/em22/libsys.a"] = "./libsys+lib", | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,7 +9,10 @@ local function addheader(h) | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| addheader("ack/config.h") | addheader("ack/config.h") | ||||||
|  | addheader("sys/types.h") | ||||||
|  | addheader("sys/timeb.h") | ||||||
| addheader("unistd.h") | addheader("unistd.h") | ||||||
|  | addheader("sgtty.h") | ||||||
| 
 | 
 | ||||||
| acklibrary { | acklibrary { | ||||||
| 	name = "headers", | 	name = "headers", | ||||||
|  |  | ||||||
							
								
								
									
										119
									
								
								plat/em22/include/sgtty.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								plat/em22/include/sgtty.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,119 @@ | ||||||
|  | /* $Id$ */ | ||||||
|  | /*
 | ||||||
|  |  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. | ||||||
|  |  * See the copyright notice in the ACK home directory, in the file "Copyright". | ||||||
|  |  */ | ||||||
|  | /* Data structures for ioctl/stty/gtty, sufficient for ACK libraries */ | ||||||
|  | 
 | ||||||
|  | #ifndef _SGTTY_H | ||||||
|  | #define _SGTTY_H | ||||||
|  | 
 | ||||||
|  | struct sgttyb { | ||||||
|  |   char sg_ispeed;		/* input speed (not used) */ | ||||||
|  |   char sg_ospeed;		/* output speed (not used) */ | ||||||
|  |   char sg_erase;		/* erase character */ | ||||||
|  |   char sg_kill;			/* kill character */ | ||||||
|  | #if defined(__USG) && !defined(_XENIX) | ||||||
|  |   int sg_flags;			/* mode flags */ | ||||||
|  | #else | ||||||
|  |   short sg_flags;		/* mode flags */ | ||||||
|  | #endif | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | struct tchars { | ||||||
|  |   char t_intrc;			/* SIGINT char */ | ||||||
|  |   char t_quitc;			/* SIGQUIT char */ | ||||||
|  |   char t_startc;		/* start output (initially CTRL-Q) */ | ||||||
|  |   char t_stopc;			/* stop output	(initially CTRL-S) */ | ||||||
|  |   char t_eofc;			/* EOF (initially CTRL-D) */ | ||||||
|  |   char t_brkc;			/* input delimiter (like nl) */ | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | /* Fields in t_flags. */ | ||||||
|  | #define ALLDELAY     0177400 | ||||||
|  | 
 | ||||||
|  | #define BSDELAY      0100000 | ||||||
|  | #  define BS0        0000000 | ||||||
|  | #  define BS1        0100000 | ||||||
|  | 
 | ||||||
|  | #define VTDELAY	     0040000 | ||||||
|  | #  define FF0        0000000 | ||||||
|  | #  define FF1        0040000 | ||||||
|  | 
 | ||||||
|  | #define CRDELAY      0030000 | ||||||
|  | #  define CR0        0000000 | ||||||
|  | #  define CR1        0010000 | ||||||
|  | #  define CR2        0020000 | ||||||
|  | #  define CR3        0030000 | ||||||
|  | 
 | ||||||
|  | #if     defined(__USG) && !defined(_XENIX) | ||||||
|  | #define XTABS	     0000002	/* do tab expansion */ | ||||||
|  | #else | ||||||
|  | #define XTABS	     0006000	/* do tab expansion */ | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #define TBDELAY	     0006000 | ||||||
|  | #  define TAB0       0000000 | ||||||
|  | #  define TAB1       0002000 | ||||||
|  | #  define TAB2       0004000 | ||||||
|  | 
 | ||||||
|  | #define NLDELAY	     0001400 | ||||||
|  | #  define NL0	     0000000 | ||||||
|  | #  define NL1        0000400 | ||||||
|  | #  define NL2        0001000 | ||||||
|  | #  define NL3        0001400 | ||||||
|  | 
 | ||||||
|  | #define ANYP         0000300 | ||||||
|  | #define EVENP        0000200 | ||||||
|  | #define ODDP         0000100 | ||||||
|  | 
 | ||||||
|  | #define RAW	     0000040	/* enable raw mode */ | ||||||
|  | #define CRMOD	     0000020	/* map lf to cr + lf */ | ||||||
|  | #define ECHO	     0000010	/* echo input */ | ||||||
|  | #define LCASE	     0000004 | ||||||
|  | #define CBREAK	     0000002	/* enable cbreak mode */ | ||||||
|  | #if     defined(__BSD4_2) || defined(_XENIX) | ||||||
|  | #define TANDEM	     0000001 | ||||||
|  | #else | ||||||
|  | #define HUPCL	     0000001    /* unused ??? */ | ||||||
|  | #endif | ||||||
|  | /*#define COOKED     0000000 */	/* neither CBREAK nor RAW */ | ||||||
|  | 
 | ||||||
|  | #ifdef __BDS4_2 | ||||||
|  | #define TIOCGETP (('t'<<8) | 8 | (6 << 16) | 0x40000000) | ||||||
|  | #define TIOCSETP (('t'<<8) | 9 | (6 << 16) | 0x80000000) | ||||||
|  | #define TIOCSETN (('t'<<8) | 10 | (6 << 16) | 0x80000000) | ||||||
|  | #define TIOCEXCL (('t'<<8) | 13 | 0x20000000) | ||||||
|  | #define TIOCNXCL (('t'<<8) | 14 | 0x20000000) | ||||||
|  | #define TIOCHPCL (('t'<<8) | 2 | 0x20000000) | ||||||
|  | #define TIOCGETC (('t'<<8) | 18 | (6 << 16) | 0x40000000) | ||||||
|  | #define TIOCSETC (('t'<<8) | 17 | (6 << 16) | 0x80000000) | ||||||
|  | #else | ||||||
|  | #define TIOCGETP (('t'<<8) | 8) | ||||||
|  | #define TIOCSETP (('t'<<8) | 9) | ||||||
|  | #define TIOCSETN (('t'<<8) | 10) | ||||||
|  | #define TIOCEXCL (('t'<<8) | 13) | ||||||
|  | #define TIOCNXCL (('t'<<8) | 14) | ||||||
|  | #define TIOCHPCL (('t'<<8) | 2) | ||||||
|  | #define TIOCGETC (('t'<<8) | 18) | ||||||
|  | #define TIOCSETC (('t'<<8) | 17) | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #define B0      0 | ||||||
|  | #define B50     1 | ||||||
|  | #define B75     2 | ||||||
|  | #define B110    3 | ||||||
|  | #define B134    4 | ||||||
|  | #define B150    5 | ||||||
|  | #define B200    6 | ||||||
|  | #define B300    7 | ||||||
|  | #define B600    8 | ||||||
|  | #define B1200   9 | ||||||
|  | #define B1800   10 | ||||||
|  | #define B2400   11 | ||||||
|  | #define B4800   12 | ||||||
|  | #define B9600   13 | ||||||
|  | #define EXTA    14 | ||||||
|  | #define EXTB    15 | ||||||
|  | 
 | ||||||
|  | #endif /* _SGTTY_H */ | ||||||
|  | @ -1,12 +1,11 @@ | ||||||
| /* $Id$ */ | /* $Id$ */ | ||||||
| 
 |  | ||||||
| /*
 | /*
 | ||||||
|  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. |  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. | ||||||
|  * See the copyright notice in the ACK home directory, in the file "Copyright". |  * See the copyright notice in the ACK home directory, in the file "Copyright". | ||||||
|  */ |  */ | ||||||
| 
 | struct timeb { | ||||||
| exit(code) | 	time_t	time; | ||||||
| { | 	unsigned short	millitm; | ||||||
| 	_cleanup() ; | 	short	timezone; | ||||||
| 	_exit(code) ; | 	short	dstflag; | ||||||
| } | }; | ||||||
							
								
								
									
										18
									
								
								plat/em22/include/sys/types.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								plat/em22/include/sys/types.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | #ifndef _SYS_TYPES_H | ||||||
|  | #define _SYS_TYPES_H | ||||||
|  | 
 | ||||||
|  | #include <stddef.h> /* for off_t, ptrdiff_t, size_t */ | ||||||
|  | 
 | ||||||
|  | typedef int			blkcnt_t; /* XXX should have 64 bits */ | ||||||
|  | typedef int			blksize_t; | ||||||
|  | typedef int			dev_t; | ||||||
|  | typedef unsigned int		gid_t; | ||||||
|  | typedef unsigned int		ino_t; | ||||||
|  | typedef unsigned short		mode_t; | ||||||
|  | typedef unsigned short		nlink_t; | ||||||
|  | typedef int			pid_t; | ||||||
|  | typedef ptrdiff_t		ssize_t; | ||||||
|  | typedef unsigned int		uid_t; | ||||||
|  | typedef unsigned long	time_t; | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
|  | @ -59,11 +59,25 @@ typedef int sig_atomic_t; | ||||||
| #define SIG_DFL ((sighandler_t) 0)            /* Default action.  */ | #define SIG_DFL ((sighandler_t) 0)            /* Default action.  */ | ||||||
| #define SIG_IGN ((sighandler_t) 1)            /* Ignore signal.  */ | #define SIG_IGN ((sighandler_t) 1)            /* Ignore signal.  */ | ||||||
| 
 | 
 | ||||||
| #define SIGABRT         6       /* Abort (ANSI) */ | #define _NSIG             16	/* number of signals used */ | ||||||
| #define SIGILL          11      /* Illegal instruction */ | 
 | ||||||
|  | #define SIGHUP	           1	/* hangup */ | ||||||
|  | #define SIGINT             2	/* interrupt (DEL) */ | ||||||
|  | #define SIGQUIT            3	/* quit (ASCII FS) */ | ||||||
|  | #define SIGILL             4	/* illegal instruction */ | ||||||
|  | #define SIGTRAP            5	/* trace trap (not reset when caught) */ | ||||||
|  | #define SIGABRT            6	/* IOT instruction */ | ||||||
|  | #define SIGIOT             6	/* SIGABRT for people who speak PDP-11 */ | ||||||
|  | #define SIGEMT             7	/* EMT instruction */ | ||||||
|  | #define SIGFPE             8	/* floating point exception */ | ||||||
|  | #define SIGKILL            9	/* kill (cannot be caught or ignored) */ | ||||||
|  | #define SIGBUS            10	/* bus error */ | ||||||
|  | #define SIGSEGV           11	/* segmentation violation */ | ||||||
|  | #define SIGSYS            12	/* bad argument to system call */ | ||||||
|  | #define SIGPIPE           13	/* write on a pipe with no one to read it */ | ||||||
|  | #define SIGALRM           14	/* alarm clock */ | ||||||
|  | #define SIGTERM           15	/* software termination signal from kill */ | ||||||
| 
 | 
 | ||||||
| #define _NSIG           32      /* Biggest signal number + 1 |  | ||||||
|                                    (not including real-time signals).  */ |  | ||||||
| typedef void (*sighandler_t)(int); | typedef void (*sighandler_t)(int); | ||||||
| extern sighandler_t signal(int signum, sighandler_t handler); | extern sighandler_t signal(int signum, sighandler_t handler); | ||||||
| extern int raise(int signum); | extern int raise(int signum); | ||||||
|  |  | ||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		
		Reference in a new issue