[comp.os.minix] 1.6.16 <include/minix>

ast@cs.vu.nl (Andy Tanenbaum) (06/12/91)

echo x - boot.h.cdif
sed '/^X/s///' > boot.h.cdif << '/'
X*** /home/top/ast/minix/1.5/include/minix/boot.h  crc=03203   1158	Sat Apr 21 22:19:57 1990
X--- boot.h  crc=36298   1212	Tue Jun  4 23:15:05 1991
X***************
X*** 1,5 ****
X--- 1,8 ----
X  /* boot.h */
X  
X+ #ifndef _BOOT_H
X+ #define _BOOT_H
X+ 
X  /* Redefine root and root image devices as variables.
X   * This keeps the diffs small but may cause future confusion.
X   */
X***************
X*** 41,43 ****
X--- 44,47 ----
X  };
X  
X  extern struct bparam_s boot_parameters;
X+ #endif /* _BOOT_H */
/
echo x - callnr.h.cdif
sed '/^X/s///' > callnr.h.cdif << '/'
X*** /home/top/ast/minix/1.5/include/minix/callnr.h  crc=25018   1453	Sat Apr 21 22:19:57 1990
X--- callnr.h  crc=15283   1475	Tue Jun  4 23:15:05 1991
X***************
X*** 10,15 ****
X--- 10,16 ----
X  #define CREAT		   8 
X  #define LINK		   9 
X  #define UNLINK		  10 
X+ #define WAITPID		  11
X  #define CHDIR		  12 
X  #define TIME		  13
X  #define MKNOD		  14 
/
echo x - com.h.cdif
sed '/^X/s///' > com.h.cdif << '/'
X*** /home/top/ast/minix/1.5/include/minix/com.h  crc=63206   7886	Sat Apr 21 22:19:57 1990
X--- com.h  crc=08917   7652	Tue Jun  4 23:15:05 1991
X***************
X*** 7,67 ****
X  /* Task numbers, function codes and reply codes. */
X  
X  #define TTY         -NR_TASKS	/* terminal I/O class */
X! #	define TTY_READ	    3	/* fcn code for reading from tty */
X! #	define TTY_WRITE    4	/* fcn code for writing to tty */
X! #	define TTY_IOCTL    5	/* fcn code for ioctl */
X! #	define TTY_SETPGRP  6	/* fcn code for setpgrp */
X! #	define TTY_OPEN     7	/* fcn code for opening tty */
X! #	define TTY_CLOSE    8	/* fcn code for closing tty */
X  #	define SUSPEND	 -998	/* used in interrupts when tty has no data */
X  
X! #ifdef AM_KERNEL
X! #define	AMOEBA
X! #endif
X  
X! #ifdef AMOEBA
X  
X! /* There are AM_NTASK copies of the amoeba kernel task.
X!  * If you change AM_NTASKS be sure to adjust kernel/table.c and fs/table.c
X!  */
X! #define AM_NTASKS	   4	/* number of kernel tasks of this class */
X  
X! #define	AMINT_CLASS	    (TTY+1)	/* Amoeba event handler */
X! #define AMOEBA_CLASS 	    (AMINT_CLASS+AM_NTASKS) /* transaction handlers */
X! #	define ETHER_ARRIV   1	/* fcn code for packet arrival */
X! #	define AM_TRANS      2	/* amoeba transaction */		
X! #	define AM_GETREQ     3	/* amoeba getrequest */
X! #	define AM_PUTREP     4	/* amoeba putrep */
X! #	define AM_REVIVE     6	/* used by kernel task to revive luser task */
X! #	define AM_TIMEOUT    8	/* used to talk to clock task */
X! #	define AM_PUTSIG     9	/* when the luser hits the DEL ! */
X! #	define AM_TASK_DIED 10  /* sent if task died during a transaction */
X  
X! #else	/* if AMOEBA not defined */
X  
X! #define	AMOEBA_CLASS	TTY
X  
X! #endif /* AMOEBA */
X  
X! /*
X!  * New class definitions should go here and should be defined relative
X!  * to AMOEBA_CLASS  (ie. as AMOEBA_CLASS+n, for the nth task added).
X!  */
X  
X! #define IDLE (AMOEBA_CLASS+1)	/* task to run when there's nothing to run */
X  
X! #define PRINTER           -7		/* printer  I/O class */
X! /* The printer uses the same commands as TTY. */
X  
X  #define WINCHESTER        -6	/* winchester (hard) disk class */
X  #define FLOPPY            -5	/* floppy disk class */
X- #	define DISK_READ   3	/* fcn code to DISK (must equal TTY_READ) */
X- #	define DISK_WRITE  4	/* fcn code to DISK (must equal TTY_WRITE) */
X- #	define DISK_IOCTL  5	/* fcn code for setting up RAM disk */
X- #	define SCATTERED_IO 6	/* fcn code for multiple reads/writes */
X- #	define OPTIONAL_IO 16	/* modifier to DISK_* codes within vector */
X  
X  #define MEM               -4	/* /dev/ram, /dev/(k)mem and /dev/null class */
X  #	define RAM_DEV     0	/* minor device for /dev/ram */
X  #	define MEM_DEV     1	/* minor device for /dev/mem */
X  #	define KMEM_DEV    2	/* minor device for /dev/kmem */
X--- 7,82 ----
X  /* Task numbers, function codes and reply codes. */
X  
X  #define TTY         -NR_TASKS	/* terminal I/O class */
X! #	define CANCEL       0	/* general req to force a task to cancel */
X! #	define HARD_INT     2	/* fcn code for all hardware interrupts */
X! #	define DEV_READ	    3	/* fcn code for reading from tty */
X! #	define DEV_WRITE    4	/* fcn code for writing to tty */
X! #	define DEV_IOCTL    5	/* fcn code for ioctl */
X! #	define DEV_OPEN     6	/* fcn code for opening tty */
X! #	define DEV_CLOSE    7	/* fcn code for closing tty */
X! #	define SCATTERED_IO 8	/* fcn code for multiple reads/writes */
X! #	define OPTIONAL_IO 16	/* modifier to DEV_* codes within vector */
X! #	define NO_CTL_TTY  -1	/* returned by DEV_OPEN if no ctl tty exists */
X  #	define SUSPEND	 -998	/* used in interrupts when tty has no data */
X  
X! #if INET_KERNEL
X! #define DL_ETH		-10
X! #endif /* INET_TASK */
X  
X! /* message type for datalink layer reqests */
X  
X! #	define DL_WRITE		3
X! #	define DL_WRITEV	4
X! #	define DL_READ		5
X! #	define DL_READV		6
X! #	define DL_INIT		7
X! #	define DL_STOP		8
X! #	define DL_GETSTAT	9
X  
X! /* message type for datalink layer replys */
X! #	define DL_INIT_REPLY	20
X! #	define DL_TASK_REPLY	21
X! #	define DL_INT_TASK	22
X  
X! #	define DL_PORT		m2_i1
X! #	define DL_PROC		m2_i2
X! #	define DL_COUNT		m2_i3
X! #	define DL_MODE		m2_l1
X! #	define DL_CLCK		m2_l2
X! #	define DL_ADDR		m2_p1
X  
X! #	define DL_STAT		m2_l1
X  
X! /* bits in `DL_STAT' field of DL replys */
X! #	define DL_PACK_SEND	0x01
X! #	define DL_PACK_RECV	0x02
X! #	define DL_DISABLED	0x10
X  
X! /* bits in `DL_MODE' field of DL requests */
X! #	define DL_NOMODE	0x0
X! #	define DL_WRITEINT_REQ	0x1
X! #	define DL_PROMISC_REQ	0x2
X! #	define DL_MULTI_REQ	0x4
X! #	define DL_BROAD_REQ	0x8
X  
X! #	define NW_OPEN		DEV_OPEN
X! #	define NW_CLOSE		DEV_CLOSE
X! #	define NW_READ		DEV_READ
X! #	define NW_WRITE		DEV_WRITE
X! #	define NW_IOCTL		DEV_IOCTL
X! #	define NW_CANCEL	CANCEL
X  
X! #define SYN_ALRM_TASK     -9	/* task to send CLOCK_INT messages */
X  
X+ #define IDLE              -8	/* task to run when there's nothing to run */
X+ 
X+ /* The printer and disks use the same commands as TTY. */
X+ #define PRINTER           -7	/* printer  I/O class */
X  #define WINCHESTER        -6	/* winchester (hard) disk class */
X  #define FLOPPY            -5	/* floppy disk class */
X  
X  #define MEM               -4	/* /dev/ram, /dev/(k)mem and /dev/null class */
X+ #       define NULL_MAJOR  1	/* major device for /dev/null */
X  #	define RAM_DEV     0	/* minor device for /dev/ram */
X  #	define MEM_DEV     1	/* minor device for /dev/mem */
X  #	define KMEM_DEV    2	/* minor device for /dev/kmem */
X***************
X*** 74,80 ****
X--- 89,102 ----
X  #	define SET_ALARM   1	/* fcn code to CLOCK, set up alarm */
X  #	define GET_TIME	   3	/* fcn code to CLOCK, get real time */
X  #	define SET_TIME	   4	/* fcn code to CLOCK, set real time */
X+ #	define GET_UPTIME  5	/* fcn code to CLOCK, get uptime */
X+ #	define SET_SYNC_AL 6	/* fcn code to CLOCK, set up alarm which */
X+ 				/* times out with a send */
X  #	define REAL_TIME   1	/* reply from CLOCK: here is real time */
X+ #	define CLOCK_INT   HARD_INT
X+ 				/* this code will only be sent by */
X+ 				/* SYN_ALRM_TASK to a task that requested a */
X+ 				/* synchronous alarm */
X  
X  #define SYSTASK           -2	/* internal functions */
X  #	define SYS_XIT     1	/* fcn code for sys_xit(parent, proc) */
X***************
X*** 92,97 ****
X--- 114,121 ----
X  #	define SYS_UMAP   13	/* fcn code for sys_umap(procno, etc) */
X  #	define SYS_MEM    14	/* fcn code for sys_mem() */
X  #	define SYS_TRACE  15	/* fcn code for sys_trace(req,pid,addr,data) */
X+ #	define SYS_VCOPY  16	/* fnc code for sys_vcopy(src_proc, dest_proc,
X+ 				   vcopy_s, vcopy_ptr) */
X  
X  #define HARDWARE          -1	/* used as source on interrupt generated msgs*/
X  
X***************
X*** 110,120 ****
X  #define ADDRESS        m2_p1	/* core buffer address */
X  
X  /* Names of message fields for messages to TTY task. */
X! #define TTY_LINE       m2_i1	/* message parameter: terminal line */
X! #define TTY_REQUEST    m2_i3	/* message parameter: ioctl request code */
X! #define TTY_SPEK       m2_l1	/* message parameter: ioctl speed, erasing */
X  #define TTY_FLAGS      m2_l2	/* message parameter: ioctl tty mode */
X- #define TTY_PGRP       m2_i3    /* message parameter: process group */
X  
X  /* Names of messages fields used in reply messages from tasks. */
X  #define REP_PROC_NR    m2_i1	/* # of proc on whose behalf I/O was done */
X--- 134,143 ----
X  #define ADDRESS        m2_p1	/* core buffer address */
X  
X  /* Names of message fields for messages to TTY task. */
X! #define TTY_LINE       DEVICE	/* message parameter: terminal line */
X! #define TTY_REQUEST    COUNT	/* message parameter: ioctl request code */
X! #define TTY_SPEK       POSITION	/* message parameter: ioctl speed, erasing */
X  #define TTY_FLAGS      m2_l2	/* message parameter: ioctl tty mode */
X  
X  /* Names of messages fields used in reply messages from tasks. */
X  #define REP_PROC_NR    m2_i1	/* # of proc on whose behalf I/O was done */
X***************
X*** 134,139 ****
X--- 157,163 ----
X  #define SYSTEM_TIME    m4_l2	/* system time consumed by process */
X  #define CHILD_UTIME    m4_l3	/* user time consumed by process' children */
X  #define CHILD_STIME    m4_l4	/* sys time consumed by process' children */
X+ #define BOOT_TICKS     m4_l5	/* number of clock ticks since boot time */
X  
X  #define PROC1          m1_i1	/* indicates a process */
X  #define PROC2          m1_i2	/* indicates a process */
X***************
X*** 143,166 ****
X  #define SIGNUM         m6_i2	/* signal number for sys_sig */
X  #define FUNC           m6_f1	/* function pointer for sys_sig */
X  #define MEM_PTR        m1_p1	/* tells where memory map is for sys_newmap */
X! #define CANCEL             0    /* general request to force a task to cancel */
X! #define SIG_MAP        m1_i2	/* used by kernel for passing signal bit map */
X! 
X! #ifdef AMOEBA
X! 
X! /* Names of message fields for amoeba tasks */
X! #define	AM_OP		m2_i1	/* one of the above operators */
X! #define	AM_PROC_NR	m2_i2	/* process # of proc doing operation */
X! #define	AM_COUNT	m2_i3	/* size of buffer for operation */
X! #define	AM_ADDRESS	m2_p1	/* address of buffer for operation */
X! 
X! /* For communication between MM and AMOEBA_CLASS kernel tasks */
X! #define	AM_STATUS	m2_i3	/* same use as REP_STATUS but for amoeba */
X! #define	AM_FREE_IT	m2_l1	/* 1=not a getreq, 0=is a getreq */
X! 
X! /* Special for passing a physical address from the ethernet driver */
X! #define	AM_PADDR	m2_l1	/* to the transaction layer */
X! 
X! #endif /* AMOEBA */
X! 
X! #define HARD_INT           2	/* fcn code for all hardware interrupts */
X--- 167,172 ----
X  #define SIGNUM         m6_i2	/* signal number for sys_sig */
X  #define FUNC           m6_f1	/* function pointer for sys_sig */
X  #define MEM_PTR        m1_p1	/* tells where memory map is for sys_newmap */
X! #define NAME_PTR       m1_p2	/* tells where program name is for dmp */
X! #define SIG_PROC       m2_i1	/* process number for inform */
X! #define SIG_MAP        m2_l1	/* used by kernel for passing signal bit map */
/
echo x - config.h.cdif
sed '/^X/s///' > config.h.cdif << '/'
X*** /home/top/ast/minix/1.5/include/minix/config.h  crc=19667   4317	Sat Apr 21 22:19:57 1990
X--- config.h  crc=36139   6514	Tue Jun  4 23:15:06 1991
X***************
X*** 7,17 ****
X  /*===========================================================================*
X   *		This section contains user-settable parameters		     *
X   *===========================================================================*/
X- 
X- /* MACHINE must be set to one of the machine types list below. */
X  #define MACHINE       IBM_PC	/* Must be one of the names listed below */
X  #define IBM_PC             1	/* any  8088 or 80x86-based system */
X! #define SUN_4             40	/* any SUN SPARC-based system */
X  #define ATARI             60	/* ATARI ST (68000) */
X  #define AMIGA             61	/* Commodore Amiga (68000) */
X  #define MACINTOSH         62	/* Apple Macintosh (68000) */
X--- 7,18 ----
X  /*===========================================================================*
X   *		This section contains user-settable parameters		     *
X   *===========================================================================*/
X  #define MACHINE       IBM_PC	/* Must be one of the names listed below */
X+ 
X  #define IBM_PC             1	/* any  8088 or 80x86-based system */
X! #define IBM_386_VM         2	/* any 386 (486) with virtual memory enabled */
X! #define SUN_4             40	/* any Sun SPARC-based system */
X! #define SUN_4_60	  40	/* Sun-4/60 (aka SparcStation 1 or Campus) */
X  #define ATARI             60	/* ATARI ST (68000) */
X  #define AMIGA             61	/* Commodore Amiga (68000) */
X  #define MACINTOSH         62	/* Apple Macintosh (68000) */
X***************
X*** 24,51 ****
X   */
X  #define ROBUST             0	/* 0 for speed, 1 for robustness */
X  
X- /* If HAVE_SCATTERED_IO is set to 1, scattered I/O is enabled. */
X- /* DEBUG - 1.4b will always use this. */
X- #define HAVE_SCATTERED_IO  1
X  
X- 
X  /* The buffer cache should be made as large as you can afford. */
X  #if INTEL_32BITS
X  #define NR_BUFS          320	/* # blocks in the buffer cache */
X  #define NR_BUF_HASH      512	/* size of buf hash table; MUST BE POWER OF 2*/
X! #else
X  #define NR_BUFS           30	/* # blocks in the buffer cache */
X  #define NR_BUF_HASH       32	/* size of buf hash table; MUST BE POWER OF 2*/
X  #endif
X  
X  
X  /* Defines for kernel configuration. */
X  #define AUTO_BIOS          0	/* xt_wini.c - use Western's autoconfig BIOS */
X  #define C_RS232_INT_HANDLERS 0	/* rs232.c - use slower C int handlers */
X  #define DEFAULT_CLASS      0	/* floppy.c - 3 or 5 to get only that size */
X  #define LINEWRAP           0	/* console.c - wrap lines at column 80 */
X  #define NO_HANDSHAKE       1	/* rs232.c - don't use CTS/RTS handshaking */
X  
X  /* These configuration defines control debugging and unfinished code. */
X  #define FLOPPY_TIMING      0	/* floppy.c - for fine tuning floppy driver */
X  #define MONITOR		   0	/* xt_wini.c - monitor loop in w_wait_int */
X--- 25,67 ----
X   */
X  #define ROBUST             0	/* 0 for speed, 1 for robustness */
X  
X  
X  /* The buffer cache should be made as large as you can afford. */
X  #if INTEL_32BITS
X  #define NR_BUFS          320	/* # blocks in the buffer cache */
X  #define NR_BUF_HASH      512	/* size of buf hash table; MUST BE POWER OF 2*/
X! #endif
X! #if MACHINE == SUN_4_60
X! #define NR_BUFS		 512	/* # blocks in the buffer cache (<=1536) */
X! #define NR_BUF_HASH	 512	/* size of buf hash table; MUST BE POWER OF 2*/
X! #endif
X! #ifndef NR_BUFS
X  #define NR_BUFS           30	/* # blocks in the buffer cache */
X  #define NR_BUF_HASH       32	/* size of buf hash table; MUST BE POWER OF 2*/
X  #endif
X  
X  
X+ /* The number of map slots determines how big a disk partition can be.
X+  * Each I_MAP_SLOT allows 8K files; each Z_MAP_SLOT allows 8M of data.
X+  */
X+ #define I_MAP_SLOTS        8	/* max # of blocks in the inode bit map */
X+ #define Z_MAP_SLOTS       16	/* max # of blocks in the zone bit map */
X+ 
X+ 
X  /* Defines for kernel configuration. */
X  #define AUTO_BIOS          0	/* xt_wini.c - use Western's autoconfig BIOS */
X  #define C_RS232_INT_HANDLERS 0	/* rs232.c - use slower C int handlers */
X  #define DEFAULT_CLASS      0	/* floppy.c - 3 or 5 to get only that size */
X  #define LINEWRAP           0	/* console.c - wrap lines at column 80 */
X  #define NO_HANDSHAKE       1	/* rs232.c - don't use CTS/RTS handshaking */
X+ #define ENABLE_NETWORKING  0	/* enable TCP/IP code */
X+ #define ALLOW_USER_SEND    0	/* debug option; allow user processes to send
X+ 				 * to and receive from everyone */
X  
X+ 
X+ /* Determine which device to use for pipes. */
X+ #define PIPE_DEV    ROOT_DEV	/* put pipes on root device */
X+ 
X  /* These configuration defines control debugging and unfinished code. */
X  #define FLOPPY_TIMING      0	/* floppy.c - for fine tuning floppy driver */
X  #define MONITOR		   0	/* xt_wini.c - monitor loop in w_wait_int */
X***************
X*** 55,61 ****
X--- 71,108 ----
X  #define SPARE_VIDEO_MEMORY 0	/* misc.c - use memory from any 2nd vid card */
X  #define SPLIMITS           0	/* mpx*.x - set stack limits (never checked) */
X  
X+ #if (MACHINE == ATARI)
X+ /* This define says whether the keyboard generates VT100 or IBM_PC escapes. */
X+ #define KEYBOARD       VT100	/* either VT100 or IBM_PC */
X+ #define VT100		 100
X  
X+ /* The next define determines the kind of partitioning. */
X+ #define PARTITIONING   SUPRA	/* one of the following or ATARI */
X+ #define SUPRA		   1	/*ICD, SUPRA and BMS are all the same */
X+ #define BMS		   1
X+ #define ICD		   1
X+ #define CBHD		   2
X+ #define EICKMANN	   3
X+ 
X+ /* Define the number of hard disk drives on your system. */
X+ #define NR_HD_DRIVES	   1	/* typically 0 or 1 */
X+ 
X+ /* Note: if you want to make your kernel smaller, you can set NR_FD_DRIVES
X+    to 0. You will still be able to boot minix.img from floppy. However, you
X+    MUST fetch both the root and usr filesystem from a hard disk
X+ */
X+ /* Define the number of floppy disk drives on your system. */
X+ #define NR_FD_DRIVES	   1	/* 0, 1, 2 */
X+ 
X+ /* This configuration define controls parallel printer code. */
X+ #define PAR_PRINTER	   1	/* disable (0) / enable (1) parallel printer */
X+ 
X+ /* This configuration define controls disk controller clock code. */
X+ #define HD_CLOCK	   1	/* disable (0) / enable (1) hard disk clock */
X+ 
X+ #endif
X+ 
X+ 
X  /*===========================================================================*
X   *	There are no user-settable parameters after this line		     *
X   *===========================================================================*/
X***************
X*** 67,104 ****
X  #define M68000            2	/* CHIP type for Atari, Amiga, Macintosh    */
X  #define SPARC             3	/* CHIP type for SUN-4 (e.g. SPARCstation)  */
X  
X  #if MACHINE == IBM_PC
X! #define CHIP           INTEL
X  #endif
X  
X! #if (MACHINE == ATARI) | (MACHINE == AMIGA) | (MACHINE == MACINTOSH)
X! #define CHIP          M68000
X  #endif
X  
X! #if (MACHINE == SUN_4)
X! #define CHIP           SPARC
X  #endif
X  
X! #if MACHINE == ATARI
X! #define ASKDEV             1	/* ask for boot device */
X! #define FASTLOAD           1	/* use multiple block transfers to init ram */
X  #endif
X  
X  /* The file buf.h uses MAYBE_WRITE_IMMED. */
X  #if ROBUST
X  #define MAYBE_WRITE_IMMED  WRITE_IMMED	/* slower but perhaps safer */
X  #else
X! #define MAYBE_WRITE_IMMED  0		/* faster */
X  #endif
X  
X  #ifndef MACHINE
X! #error "In <minix/config.h> please define MACHINE"
X  #endif
X  
X  #ifndef CHIP
X! #error "In <minix/config.h> please define MACHINE to have a legal value"
X  #endif
X  
X  #if (MACHINE == 0)
X! #error "MACHINE has incorrect value (0)"
X  #endif
X--- 114,160 ----
X  #define M68000            2	/* CHIP type for Atari, Amiga, Macintosh    */
X  #define SPARC             3	/* CHIP type for SUN-4 (e.g. SPARCstation)  */
X  
X+ /* Set the FP_FORMAT type based on the machine selected, either hw or sw    */
X+ #define FP_NONE		  0	/* no floating point support                */
X+ #define FP_IEEE		  1	/* conform IEEE floating point standard     */
X+ 
X  #if MACHINE == IBM_PC
X! #define CHIP          INTEL
X  #endif
X  
X! #if (MACHINE == ATARI) || (MACHINE == AMIGA) || (MACHINE == MACINTOSH)
X! #define CHIP         M68000
X  #endif
X  
X! #if (MACHINE == SUN_4) || (MACHINE == SUN_4_60)
X! #define CHIP          SPARC
X! #define FP_FORMAT   FP_IEEE
X  #endif
X  
X! #if (MACHINE == ATARI) || (MACHINE == SUN_4)
X! #define ASKDEV            1	/* ask for boot device */
X! #define FASTLOAD          1	/* use multiple block transfers to init ram */
X  #endif
X  
X+ #ifndef FP_FORMAT
X+ #define FP_FORMAT   FP_NONE
X+ #endif
X+ 
X  /* The file buf.h uses MAYBE_WRITE_IMMED. */
X  #if ROBUST
X  #define MAYBE_WRITE_IMMED  WRITE_IMMED	/* slower but perhaps safer */
X  #else
X! #define MAYBE_WRITE_IMMED 0		/* faster */
X  #endif
X  
X  #ifndef MACHINE
X! error "In <minix/config.h> please define MACHINE"
X  #endif
X  
X  #ifndef CHIP
X! error "In <minix/config.h> please define MACHINE to have a legal value"
X  #endif
X  
X  #if (MACHINE == 0)
X! error "MACHINE has incorrect value (0)"
X  #endif
/
echo x - const.h.cdif
sed '/^X/s///' > const.h.cdif << '/'
X*** /home/top/ast/minix/1.5/include/minix/const.h  crc=55802   3932	Sat Apr 21 22:19:57 1990
X--- const.h  crc=03094   5546	Tue Jun  4 23:15:06 1991
X***************
X*** 19,28 ****
X  #define MAJOR	           8	/* major device = (dev>>MAJOR) & 0377 */
X  #define MINOR	           0	/* minor device = (dev>>MINOR) & 0377 */
X  
X! #ifdef AM_KERNEL
X! #define NR_TASKS	  14	/* must be 5 more than without amoeba */
X! #else
X! #define NR_TASKS           9	/* number of tasks in the transfer vector */
X  #endif
X  
X  #define NR_PROCS          32	/* number of slots in proc table */
X--- 19,36 ----
X  #define MAJOR	           8	/* major device = (dev>>MAJOR) & 0377 */
X  #define MINOR	           0	/* minor device = (dev>>MINOR) & 0377 */
X  
X! #define NULL     ((void *)0)	/* null pointer */
X! #define CPVEC_NR          16	/* max # of entries in a SYS_VCOPY request */
X! #if (MACHINE == SUN_4)
X! #define LOAD_ADDR     0x4000	/* addr at which the file is loaded (SPARC) */
X! 				/* DEBUG.  What file?  Is this the same as
X! 				 * KERNEL_LOAD_ADDRESS for the 8088/386?
X! 				 * It is 0x600 for the 8088 and for old 386
X! 				 * versions, 0x700 for the current 386 version,
X! 				 * and may have to be page-aligned for later
X! 				 * 386 versions.  It surely belongs in the
X! 				 * machine-dependent section.
X! 				 */
X  #endif
X  
X  #define NR_PROCS          32	/* number of slots in proc table */
X***************
X*** 31,44 ****
X  #define D                  1	/* proc[i].mem_map[D] is for data */
X  #define S                  2	/* proc[i].mem_map[S] is for stack */
X  
X! #define MAX_P_LONG  2147483647	/* maximum positive long, i.e. 2**31 - 1 */
X  
X  /* Memory is allocated in clicks. */
X  #if (CHIP == INTEL) || (CHIP == M68000)
X  #define CLICK_SIZE       256	/* unit in which memory is allocated */
X  #define CLICK_SHIFT        8	/* log2 of CLICK_SIZE */
X  #endif
X  
X  #define click_to_round_k(n) \
X  	((unsigned) ((((unsigned long) (n) << CLICK_SHIFT) + 512) / 1024))
X  #if CLICK_SIZE < 1024
X--- 39,83 ----
X  #define D                  1	/* proc[i].mem_map[D] is for data */
X  #define S                  2	/* proc[i].mem_map[S] is for stack */
X  
X! /* Process numbers of some important processes. */
X! #define MM_PROC_NR         0	/* process number of memory manager */
X! #define FS_PROC_NR         1	/* process number of file system */
X  
X+ /* Miscellaneous */
X+ #define BYTE            0377	/* mask for 8 bits */
X+ #define TO_USER            0	/* flag telling to copy from fs to user */
X+ #define FROM_USER          1	/* flag telling to copy from user to fs */
X+ #define READING            0	/* copy data to user */
X+ #define WRITING            1	/* copy data from user */
X+ #define NO_NUM        0x8000	/* used as numerical argument to panic() */
X+ #define NIL_PTR   (char *) 0	/* generally useful expression */
X+ #define HAVE_SCATTERED_IO  1	/* scattered I/O is now standard */
X+ #define SIG_PUSH_BYTES (4*sizeof(int))	/* how many bytes pushed by signal */
X+ 
X+ /* Macros. */
X+ #define MAX(a, b)   ((a) > (b) ? (a) : (b))
X+ #define MIN(a, b)   ((a) < (b) ? (a) : (b))
X+ 
X+ /* Machine dependent stuff. */
X+ #if INET_KERNEL
X+ #define INET_TASKS         1	/* Ethernet task */
X+ #else
X+ #define INET_TASKS         0
X+ #endif
X+ 
X+ #define NR_TASKS (10 + INET_TASKS)	/* number of tasks */
X+ 
X  /* Memory is allocated in clicks. */
X  #if (CHIP == INTEL) || (CHIP == M68000)
X  #define CLICK_SIZE       256	/* unit in which memory is allocated */
X  #define CLICK_SHIFT        8	/* log2 of CLICK_SIZE */
X  #endif
X  
X+ #if (CHIP == SPARC)
X+ #define CLICK_SIZE	4096	/* unit in which memory is alocated */
X+ #define CLICK_SHIFT	  12	/* 2log of CLICK_SIZE */
X+ #endif
X+ 
X  #define click_to_round_k(n) \
X  	((unsigned) ((((unsigned long) (n) << CLICK_SHIFT) + 512) / 1024))
X  #if CLICK_SIZE < 1024
X***************
X*** 47,76 ****
X  #define k_to_click(n) ((n) / (CLICK_SIZE / 1024))
X  #endif
X  
X! /* Process numbers of some important processes */
X! #define MM_PROC_NR         0	/* process number of memory manager */
X! #define FS_PROC_NR         1	/* process number of file system */
X  #define INIT_PROC_NR       2	/* init -- the process that goes multiuser */
X  #define LOW_USER           2	/* first user not part of operating system */
X  
X- /* Miscellaneous */
X- #define BYTE            0377	/* mask for 8 bits */
X- #define TO_USER            0	/* flag telling to copy from fs to user */
X- #define FROM_USER          1	/* flag telling to copy from user to fs */
X- #define READING            0	/* copy data to user */
X- #define WRITING            1	/* copy data from user */
X- 
X  #if (MACHINE != ATARI)
X  #define ABS             -999	/* this process means absolute memory */
X  #endif
X  
X- #define WORD_SIZE          2	/* number of bytes per word */
X- 
X- #define NIL_PTR   (char *) 0	/* generally useful expression */
X- 
X- #define NO_NUM        0x8000	/* used as numerical argument to panic() */
X- #define SIG_PUSH_BYTES (4*sizeof(int))	/* how many bytes pushed by signal */
X- 
X  /* Flag bits for i_mode in the inode. */
X  #define I_TYPE          0170000	/* this field gives inode type */
X  #define I_REGULAR       0100000	/* regular file, not dir or special */
X--- 86,104 ----
X  #define k_to_click(n) ((n) / (CLICK_SIZE / 1024))
X  #endif
X  
X! #if INET_KERNEL
X! #define INET_PROC_NR       2	/* process number of network task */
X! #define INIT_PROC_NR       3	/* init -- the process that goes multiuser */
X! #define LOW_USER           3	/* first user not part of operating system */
X! #else
X  #define INIT_PROC_NR       2	/* init -- the process that goes multiuser */
X  #define LOW_USER           2	/* first user not part of operating system */
X+ #endif
X  
X  #if (MACHINE != ATARI)
X  #define ABS             -999	/* this process means absolute memory */
X  #endif
X  
X  /* Flag bits for i_mode in the inode. */
X  #define I_TYPE          0170000	/* this field gives inode type */
X  #define I_REGULAR       0100000	/* regular file, not dir or special */
X***************
X*** 86,88 ****
X--- 114,127 ----
X  #define W_BIT           0000002	/* rWx protection bit */
X  #define X_BIT           0000001	/* rwX protection bit */
X  #define I_NOT_ALLOC     0000000	/* this inode is free */
X+ 
X+ /* Some limits. */
X+ #define MAX_BLOCK_NR  ((block_t) 077777777)	/* largest block number */
X+ #define HIGHEST_ZONE   ((zone_t) 077777777)	/* largest zone number */
X+ #define MAX_INODE_NR      ((ino_t) 0177777)	/* largest inode number */
X+ #define MAX_FILE_POS ((off_t) 017777777777)	/* largest legal file offset */
X+ 
X+ #define NO_BLOCK              ((block_t) 0)	/* absence of a block number */
X+ #define NO_ENTRY                ((ino_t) 0)	/* absence of a dir entry */
X+ #define NO_ZONE                ((zone_t) 0)	/* absence of a zone number */
X+ #define NO_DEV                  ((dev_t) 0)	/* absence of a device numb */
/
echo x - diskparm.h.cdif
sed '/^X/s///' > diskparm.h.cdif << '/'
X*** /home/top/ast/minix/1.5/include/minix/diskparm.h  crc=16388    393	Sat Apr 21 22:19:57 1990
X--- diskparm.h  crc=28321    458	Tue Jun  4 23:15:06 1991
X***************
X*** 2,7 ****
X--- 2,9 ----
X   * used mainly for formatting.
X   */
X  
X+ #ifndef _DISKPARM_H
X+ #define _DISKPARM_H
X  struct disk_parameter_s {
X    char spec1;
X    char spec2;
X***************
X*** 15,17 ****
X--- 17,20 ----
X    char head_settle_msec;
X    char motor_start_eigth_sec;
X  };
X+ #endif /* _DISKPARM_H */
/
echo x - dl_eth.h
sed '/^X/s///' > dl_eth.h << '/'
X/* The eth_stat struct is used in a DL_GETSTAT request the the ehw_task. */
X
X#ifndef _ETH_HW_H
X#define _ETH_HW_H
X
Xtypedef struct eth_stat
X{
X  unsigned long ets_recvErr,	/* # receive errors */
X	ets_sendErr,		/* # send error */
X	ets_OVW,		/* # buffer overwrite warnings */
X	ets_CRCerr,		/* # crc errors of read */
X	ets_frameAll,		/* # frames not alligned (# bits % 8 != 0) */
X	ets_missedP,		/* # packets missed due to slow processing */
X	ets_packetR,		/* # packets received */
X	ets_packetT,		/* # packets transmitted */
X	ets_transDef,		/* # transmission defered (Tx was busy) */
X	ets_collision,		/* # collissions */
X	ets_transAb,		/* # Tx aborted due to excess collisions */
X	ets_carrSense,		/* # carrier sense lost */
X	ets_fifoUnder,		/* # FIFO underruns (processor too busy) */
X	ets_fifoOver,		/* # FIFO overruns (processor too busy) */
X	ets_CDheartbeat,	/* # times unable to transmit collision sig*/
X	ets_OWC;		/* # times out of window collision */
X} eth_stat_t;
X
X#endif /* _ETH_HW_H */
/
echo x - fslib.h
sed '/^X/s///' > fslib.h << '/'
X_PROTOTYPE( int bitmapsize, (bit_t nr_bits)				);
X_PROTOTYPE( unsigned conv2, (int norm, int w)				);
X_PROTOTYPE( long conv4, (int norm, long x)				);
X_PROTOTYPE( void conv_inode, (struct inode *rip, d1_inode *dip,
X			      d2_inode *dip2, int rw_flag, int magic)	);
X_PROTOTYPE( void old_icopy, (struct inode *rip, d1_inode *dip,
X						int direction, int norm));
X_PROTOTYPE( void new_icopy, (struct inode *rip, d2_inode *dip,
X						int direction, int norm));
/
echo x - minlib.h
sed '/^X/s///' > minlib.h << '/'
X#ifndef _MINLIB
X#define _MINLIB
X
X#ifndef _ANSI_H
X#include <ansi.h>
X#endif
X
X/* Miscellaneous BSD. */
X_PROTOTYPE(void swab, (char *from, char *to, int count));
X_PROTOTYPE(char *crypt, (char *pw, char *salt));
X_PROTOTYPE(char *itoa, (int n));
X_PROTOTYPE(char *getpass, (const char *prompt));
X
X/* Miscellaneous MINIX. */
X_PROTOTYPE(void std_err, (char *s));
X_PROTOTYPE(void prints, (const char *s, ...));
X_PROTOTYPE(int fsversion, (char *dev, char *prog));
X_PROTOTYPE(int load_mtab, (char *prog_name));
X_PROTOTYPE(int rewrite_mtab, (char *prog_name));
X_PROTOTYPE(int get_mtab_entry, (char *, char *, char *, char *));
X_PROTOTYPE(int put_mtab_entry, (char *, char *, char *, char *));
X
X#endif
/
echo x - partition.h.cdif
sed '/^X/s///' > partition.h.cdif << '/'
X*** /home/top/ast/minix/1.5/include/minix/partition.h  crc=64597   1059	Sat Apr 21 22:19:57 1990
X--- partition.h  crc=49125   1127	Tue Jun  4 23:15:07 1991
X***************
X*** 1,4 ****
X--- 1,6 ----
X  /* Description of entry in partition table.  */
X+ #ifndef _PARTITION_H
X+ #define _PARTITION_H
X  struct part_entry {
X    unsigned char bootind;	/* boot indicator 0/ACTIVE_FLAG	 */
X    unsigned char start_head;	/* head value for first sector	 */
X***************
X*** 20,22 ****
X--- 22,25 ----
X  #define MINIX_PART	0x81
X  #define NO_PART		0x00
X  #define OLD_MINIX_PART	0x80	/* created before 1.4b, driver must round */
X+ #endif /* _PARTITION_H */
/
echo x - syslib.h
sed '/^X/s///' > syslib.h << '/'
X/* Prototypes for system library functions. */
X
X/* Minix user+system library. */
X#ifndef _SYSLIB_H
X#define _SYSLIB_H
X_PROTOTYPE( void printk, (char *_fmt, ...)				);
X_PROTOTYPE( int sendrec, (int _src_dest, message *_m_ptr)		);
X
X/* Minix system library. */
X_PROTOTYPE( int receive, (int _src, message *_m_ptr)			);
X_PROTOTYPE( int send, (int _dest, message *_m_ptr)			);
X
X_PROTOTYPE( void sys_abort, (void)					);
X_PROTOTYPE( void sys_copy, (message *mptr)				);
X_PROTOTYPE( void sys_exec, (int proc, char *ptr, int traced, char *prog));
X_PROTOTYPE( void sys_getsp, (int proc, vir_bytes *newsp)		);
X_PROTOTYPE( void sys_kill, (int proc, int sig)				);
X_PROTOTYPE( void sys_newmap, (int proc, struct mem_map *ptr)		);
X_PROTOTYPE( void sys_sig, (int proc, int sig, sighandler_t sighandler)	);
X_PROTOTYPE( void sys_times, (int proc, clock_t ptr[5])			);
X_PROTOTYPE( int sys_trace,(int req, int procnr, long addr, long *data_p));
X_PROTOTYPE( void tell_fs, (int what, int p1, int p2, int p3)		);
X_PROTOTYPE( void sys_xit, (int parent, int proc, phys_clicks *basep, 
X						 phys_clicks *sizep));
X_PROTOTYPE( void sys_fork, (int parent, int child,int pid,phys_clicks shadow));
X_PROTOTYPE( void sys_fresh, (int proc, struct mem_map *ptr, phys_clicks dc,
X				phys_clicks *basep, phys_clicks *sizep)	);
X
X#endif /* _SYSLIB_H */
/
echo x - type.h.cdif
sed '/^X/s///' > type.h.cdif << '/'
X*** /home/top/ast/minix/1.5/include/minix/type.h  crc=38283   3826	Sat Apr 21 22:19:57 1990
X--- type.h  crc=26594   3490	Tue Jun  4 23:15:07 1991
X***************
X*** 1,40 ****
X! /* Macros */
X! #define MAX(a,b)	(a > b ? a : b)
X! #define MIN(a,b)	(a < b ? a : b)
X  
X! /* Type definitions */
X! typedef unsigned short unshort;	/* must be 16-bit unsigned */
X! typedef unshort block_nr;	/* block number */
X! #define NO_BLOCK (block_nr) 0	/* indicates the absence of a block number */
X! #define MAX_BLOCK_NR (block_nr) 0177777
X  
X! #define NO_ENTRY (ino_t) 0	/* indicates the absence of a dir entry */
X! #define MAX_INODE_NR (ino_t) 0177777
X  
X! typedef unshort zone_nr;	/* zone number */
X! #define NO_ZONE   (zone_nr) 0	/* indicates the absence of a zone number */
X! #define HIGHEST_ZONE (zone_nr)  0177777
X  
X- typedef unshort bit_nr;		/* if ino_t & zone_nr both unshort,
X- 				   then also unshort, else long */
X- 
X- typedef long zone_type;		/* zone size */
X- #define NO_DEV    (dev_t) ~0	/* indicates absence of a device number */
X- 
X- #define MAX_FILE_POS 017777777777L
X- 
X  #if (CHIP == INTEL)
X! typedef unsigned vir_bytes;	/* virtual addresses and lengths in bytes */
X  #endif
X  
X  #if (CHIP == M68000)
X! typedef long vir_bytes;		/* virtual addresses and lengths in bytes */
X  #endif
X  
X! typedef unsigned vir_clicks;	/* virtual addresses and lengths in clicks */
X! typedef long phys_bytes;	/* physical addresses and lengths in bytes */
X! typedef unsigned phys_clicks;	/* physical addresses and lengths in clicks */
X! typedef int signed_clicks;	/* same length as phys_clicks, but signed */
X  
X  /* Types relating to messages. */
X  #define M1                 1
X--- 1,31 ----
X! #ifndef _TYPE_H
X! #define _TYPE_H
X! #ifndef _MINIX_TYPE_H
X! #define _MINIX_TYPE_H
X  
X! /* Type of a signal-handling function. */
X! #ifndef _ANSI_H
X! #include <ansi.h>
X! #endif
X  
X! typedef _PROTOTYPE (void (*sighandler_t), (int));
X  
X! /* Type definitions. */
X! typedef unsigned int vir_clicks; /* virtual  addresses and lengths in clicks */
X! typedef unsigned long phys_bytes;/* physical addresses and lengths in bytes */
X! typedef unsigned int phys_clicks;/* physical addresses and lengths in clicks */
X  
X  #if (CHIP == INTEL)
X! typedef unsigned int vir_bytes;	/* virtual addresses and lengths in bytes */
X  #endif
X  
X  #if (CHIP == M68000)
X! typedef unsigned long vir_bytes;/* virtual addresses and lengths in bytes */
X  #endif
X  
X! #if (CHIP == SPARC)
X! typedef unsigned long vir_bytes;/* virtual addresses and lengths in bytes */
X! #endif
X  
X  /* Types relating to messages. */
X  #define M1                 1
X***************
X*** 45,53 ****
X  typedef struct {int m1i1, m1i2, m1i3; char *m1p1, *m1p2, *m1p3;} mess_1;
X  typedef struct {int m2i1, m2i2, m2i3; long m2l1, m2l2; char *m2p1;} mess_2;
X  typedef struct {int m3i1, m3i2; char *m3p1; char m3ca1[M3_STRING];} mess_3;
X! typedef struct {long m4l1, m4l2, m4l3, m4l4;} mess_4;
X! typedef struct {char m5c1, m5c2; int m5i1, m5i2; long m5l1, m5l2, m5l3;} mess_5;
X! typedef struct {int m6i1, m6i2, m6i3; long m6l1; void (*m6f1)();} mess_6;
X  
X  typedef struct {
X    int m_source;			/* who sent the message */
X--- 36,44 ----
X  typedef struct {int m1i1, m1i2, m1i3; char *m1p1, *m1p2, *m1p3;} mess_1;
X  typedef struct {int m2i1, m2i2, m2i3; long m2l1, m2l2; char *m2p1;} mess_2;
X  typedef struct {int m3i1, m3i2; char *m3p1; char m3ca1[M3_STRING];} mess_3;
X! typedef struct {long m4l1, m4l2, m4l3, m4l4, m4l5;} mess_4;
X! typedef struct {char m5c1, m5c2; int m5i1, m5i2; long m5l1, m5l2, m5l3;}mess_5;
X! typedef struct {int m6i1, m6i2, m6i3; long m6l1; sighandler_t m6f1;} mess_6;
X  
X  typedef struct {
X    int m_source;			/* who sent the message */
X***************
X*** 62,70 ****
X    } m_u;
X  } message;
X  
X- #define MESS_SIZE (sizeof(message))
X- #define NIL_MESS (message *) 0
X- 
X  /* The following defines provide names for useful members. */
X  #define m1_i1  m_u.m_m1.m1i1
X  #define m1_i2  m_u.m_m1.m1i2
X--- 53,58 ----
X***************
X*** 85,95 ****
X  #define m3_p1  m_u.m_m3.m3p1
X  #define m3_ca1 m_u.m_m3.m3ca1
X  
X- 
X  #define m4_l1  m_u.m_m4.m4l1
X  #define m4_l2  m_u.m_m4.m4l2
X  #define m4_l3  m_u.m_m4.m4l3
X  #define m4_l4  m_u.m_m4.m4l4
X  
X  #define m5_c1  m_u.m_m5.m5c1
X  #define m5_c2  m_u.m_m5.m5c2
X--- 73,83 ----
X  #define m3_p1  m_u.m_m3.m3p1
X  #define m3_ca1 m_u.m_m3.m3ca1
X  
X  #define m4_l1  m_u.m_m4.m4l1
X  #define m4_l2  m_u.m_m4.m4l2
X  #define m4_l3  m_u.m_m4.m4l3
X  #define m4_l4  m_u.m_m4.m4l4
X+ #define m4_l5  m_u.m_m4.m4l5
X  
X  #define m5_c1  m_u.m_m5.m5c1
X  #define m5_c2  m_u.m_m5.m5c2
X***************
X*** 111,129 ****
X    vir_clicks mem_len;		/* length */
X  };
X  
X- struct copy_info {		/* used by sys_copy(src, dst, bytes) */
X-   int cp_src_proc;
X-   int cp_src_space;
X-   vir_bytes cp_src_vir;
X-   int cp_dst_proc;
X-   int cp_dst_space;
X-   vir_bytes cp_dst_vir;
X-   vir_bytes cp_bytes;
X- };
X- 
X  struct iorequest_s {
X    long io_position;		/* position in device file (really off_t) */
X    char *io_buf;			/* buffer in user space */
X    unsigned short io_nbytes;	/* size of request */
X    unsigned short io_request;	/* read, write (optionally) */
X  };
X--- 99,124 ----
X    vir_clicks mem_len;		/* length */
X  };
X  
X  struct iorequest_s {
X    long io_position;		/* position in device file (really off_t) */
X    char *io_buf;			/* buffer in user space */
X    unsigned short io_nbytes;	/* size of request */
X    unsigned short io_request;	/* read, write (optionally) */
X  };
X+ #endif /* _TYPE_H */
X+ 
X+ typedef struct {
X+   vir_bytes iov_addr;		/* address of an I/O buffer */
X+   vir_bytes iov_size;		/* sizeof an I/O buffer */
X+ } iovec_t;
X+ 
X+ typedef struct {
X+   vir_bytes cpv_src;		/* src address of data */
X+   vir_bytes cpv_dst;		/* dst address of data */
X+   vir_bytes cpv_size;		/* size of data */
X+ } cpvec_t;
X+ 
X+ #define MESS_SIZE (sizeof(message))	/* might need usizeof from fs here */
X+ #define NIL_MESS ((message *) 0)
X+ 
X+ #endif /* _MINIX_TYPE_H */
/