#
# line 1 "KIP.h"
# line 1 "KIPdefs.h"
# line 1 "param.h"
# ifndef NO_WHAT
/*
 *      SCCS file type - Emulator Include File
 *
 *      What identification string:
 */
static char *_S_hparam = "@(#)EM_param.h	3.1";
# endif

/****************************************************************
 *      PARAM.h contains the Global Paramater Declarations for  *
 *      the Emulator that can be varied.                        *
 ****************************************************************/


/*
 *      CONSTANTS
 */

#define NFprocs               /*16 */   3       /* number of process within */
						/* a family                 */

                          /* ESY  */
                        /* ESY  */

   /* 8192 */      /* EPS  */

#define NFopenFiles          /* 50 */    6      /* EFI  */
#define NPopenFiles          /* 16 */    6      /* EFI  */
#define NIOBUFFERS           /*  6 */    2      /* EBC  */
#define CACHE_BUFFERSIZE       512              /* EBC  */

#define NOPEN_TTYS           /*  6 */    2      /* ETTY */
#define NREAD_Q_SIZE         /*256 */   64      /* ETTY */
#define NWRITE_Q_SIZE        /*256 */   64      /* ETTY */
#define NECHO_Q_SIZE            32              /* ETTY */
#define NE_K_READ_BUF_SIZE   /*100 */   50      /* ETTY */



      /* number of signals */

/*
 *      EPP:
 */

# define NProcPerPP        3    /* Arbitrary value -- need true value */
# define NFopenPipes       2    /* another arbitrary value            */
# define MAXPPFD          15    /* maximal PP file index (<= 15)      */
# define PP_DATA_SIZE   /*4096*/ 16


/*
 *      ETH:
 */



/*
 *      EIN:
 *              SEG_GROWTH_GRAIN is the kernel's idea of the minimum
 *              amount a segment may grow or shrink.  It must also
 *              be a power of 2.
 */


# line 1 "KIPdefs.h"		/* /usr/ */
# line 1 "tty.h"
#
/*
*	SCCS File Type - 
*
*/
/*
 * A clist structure is the head of a linked list queue of characters.
 * The characters are stored in 4-word
 * blocks containing a link and 6 characters.
 * The routines getc and putc (m45.s or m40.s)
 * manipulate these structures.
 */
struct clist
{
	int	c_cc;		/* character count */
	int	c_cf;		/* pointer to first block */
	int	c_cl;		/* pointer to last block */
};

/*
 * A tty structure is needed for each UNIX character device that
 * is used for normal terminal IO.
 * The routines in tty.c handle the common code associated with
 * these structures.
 * The definition and device dependent code is in each driver.
 */
struct tty
{
	struct	clist t_rawq;	/* input chars right off device */
	struct	clist t_canq;	/* input chars after erase and kill */
	struct	clist t_outq;	/* output list to device */
	int	t_flags;	/* mode, settable by stty call */
	int	*t_addr;	/* device address (register or startup fcn) */
	char	t_delct;	/* number of delimiters in raw q */
	char	t_col;		/* printing column of device */
	char	t_erase;	/* erase character */
	char	t_kill;		/* kill character */
	char	t_state;	/* internal state, not visible externally */
	char	t_char;		/* character temporary */
	int	t_speeds;	/* output+input line speed */
	int	t_pgrp;		/* process group name */
	int     t_xflags;       /* extra flags for XON/XOFF, CNTRL-O */
};

/*
 * The actual structure of a clist block manipulated by
 * getc and putc (mch.s)
 */
struct cblock {
	struct cblock *c_next;
	char info[6];
};

struct ttydma {
	char	c[8];
};

#define	TTIPRI	10
#define	TTOPRI	20

#define	CERASE	'#'		/* default special characters */
#define	CEOT	004
#define	CKILL	'@'
#define	CQUIT	034		/* FS, cntl shift L */
#define	CINTR	0177		/* DEL */

/*  This is for stopping output to the terminal     */
#define CHOLDS  023             /* CNTRL-S for XOFF */
/*  This is for continueing output to the terminal  */
#define CHOLDQ  021             /* CNTRL-Q for XON  */

#define STOPOUT 017             /* CNTRL-O for stop output */
#define CNTRLO  (010<<4)        /* Output suppression      */

/* limits */
#define TTHIWAT 100
#define	TTLOWAT	50
#define TTYHOG  256

/* modes */
#define	HUPCL	01
#define	XTABS	02
#define	LCASE	04
#define	ECHO	010
#define	CRMOD	020
#define	RAW	040
#define	ODDP	0100
#define	EVENP	0200
#define	NLDELAY	001400
#define	TBDELAY	006000
#define	CRDELAY	030000
#define	VTDELAY	040000

/* Hardware bits */
#define	DONE	0200
#define	IENABLE	0100

/* Internal state bits */
#define	TIMEOUT	01		/* Delay timeout in progress */
#define	WOPEN	02		/* Waiting for open to complete */
#define	ISOPEN	04		/* Device is open */
#define	SSTART	010		/* Has special start routine at addr */
#define	CARR_ON	020		/* Software copy of carrier-present */
#define	BUSY	040		/* Output in progress */
#define	ASLEEP	0100		/* Wakeup when output done */
#define HOLD    0200            /* Hold screen mode is active */
# line 3 "KIPdefs.h"		/* /usr/ */

# line 1 "KERcalls.h"
# ifndef NO_WHAT
/*
 *      SCCS file type - Emulator Include File
 *
 *      What identification string:
 */
static char *_S_Kercalls = "@(#)EM_KERcalls.h	3.4";
# endif

/*
COPYRIGHT:  1979, by Ford Aerospace and Communications Corp.
ADDRESS:    Ford Aerospace and Communications Corp.
            Western Development Laboratories
            3939 Fabian Way
            Palo Alto, California 94303
            Attention: Software Technology Dept.
            Mail Stop: V02 

CPCI:   Emulator

TAG:    EKL
MODULE NAME:  

		Kernel Interface Linkage Include file.

REFERENCES-
  A Specs:  ???
  B5 Specs:  ???

HISTORY:
  AUTHOR: Dan Ladermann, modified from Modula version by L.C.Dion, R.B.Neely.
  VERSION:  3.4 of 12/12/82
  MODULE TYPE: M4  file with C types.

PRIVILEGES:  None
SPECIAL NOTES:  None

*/


/*
 *      CONSTANTS
 */

          /* top  for bytes in a message     */

             /* boolean values */
             /* 0377 as used in Kernel */


/* bits for discretionary access  */

	
	
	
	
	
	
	
	
	

/* bits for discretionary access  for acc modes */

	
	
	


/* K_remap status selectors */

	
	
	

/* K_set_segment_status selectors */

	
	
	
	
	
	

/* K_(set)(get)_process_status selectors */

	            /* privileged to set    */
	            /* privileged to set    */
	            /* privileged to set    */
	            /* owner to set         */
	            /* owner to set         */
	            /* self only to set     */
	            /* owner to set         */
	            /* owner to set         */
	            /* set time_of_day_clock*/

/* K_set_object_level selectors */

	            /* set access_level     */
	            /* set effective owner  */
	            /* set effective group  */
	            /* set discr_access     */
	            /* set privileges       */


/*
 *      TYPES
 *
 *
 *      Each type declaration has two comments associated with it.
 *
 *      1. a short description as to what the type is used for
 *
 *      2. the size of the type ( in bytes of data space )
 *
 *      3. where m4 translates have been used for typedefs there is also
 *         and addition comment -typedef-
 */


     /* typedef */ /* 32-bit bits */
				      /* 4 bytes */

 /* typedef */ /* 32-bit cardinal */
				      /* 4 bytes */

 /* typedef */ /* 32-bit unsigned int */
				      /* 2 bytes */

    /* typedef */ /* status int */
				      /* 2 bytes */

    /* typedef */ /* -1 or 0 */
				      /* 1 byte */

    /* typedef */ /* -1 or 0 */
				      /* 1 byte */




/*
 *      nsp_type  - name space partition
 */

		/* 1 byte */


	/*
	 *      The file_nsp has been removed. If unsigned int( seid.nsp )
	 *              is greater than 127, then the namespace signifies
	 *              the file namespace (by definition).
	 */


	   /* null                 */
	   /* EXTENTS              */
	   /* TERMINALS            */
	   /* DEVICES              */
	   /* PROCESSES            */
	   /* SEGMENTS             */
	   /* SUBTYPES             */
	   /* Kernel gen. messages */
	