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 */ /