Pristine Ack-5.5
[Ack-5.5.git] / lib / minix / include / minix / config.h
1 /* This file sets configuration parameters for the MINIX kernel, FS, and MM.
2  * It is divided up into two main sections.  The first section contains
3  * user-settable parameters.  In the second section, various internal system
4  * parameters are set based on the user-settable parameters.
5  */
6
7 /*===========================================================================*
8  *              This section contains user-settable parameters               *
9  *===========================================================================*/
10
11 /* MACHINE must be set to one of the machine types list below. */
12 #define MACHINE       IBM_PC    /* Must be one of the names listed below */
13 #define IBM_PC             1    /* any  8088 or 80x86-based system */
14 #define SUN_4             40    /* any SUN SPARC-based system */
15 #define ATARI             60    /* ATARI ST (68000) */
16 #define AMIGA             61    /* Commodore Amiga (68000) */
17 #define MACINTOSH         62    /* Apple Macintosh (68000) */
18
19
20 /* If ROBUST is set to 1, writes of i-node, directory, and indirect blocks
21  * from the cache happen as soon as the blocks are modified.  This gives a more
22  * robust, but slower, file system.  If it is set to 0, these blocks are not
23  * given any special treatment, which may cause problems if the system crashes.
24  */
25 #define ROBUST             0    /* 0 for speed, 1 for robustness */
26
27 /* If HAVE_SCATTERED_IO is set to 1, scattered I/O is enabled. */
28 /* DEBUG - 1.4b will always use this. */
29 #define HAVE_SCATTERED_IO  1
30
31
32 /* The buffer cache should be made as large as you can afford. */
33 #if INTEL_32BITS
34 #define NR_BUFS          320    /* # blocks in the buffer cache */
35 #define NR_BUF_HASH      512    /* size of buf hash table; MUST BE POWER OF 2*/
36 #else
37 #define NR_BUFS           30    /* # blocks in the buffer cache */
38 #define NR_BUF_HASH       32    /* size of buf hash table; MUST BE POWER OF 2*/
39 #endif
40
41
42 /* Defines for kernel configuration. */
43 #define AUTO_BIOS          0    /* xt_wini.c - use Western's autoconfig BIOS */
44 #define C_RS232_INT_HANDLERS 0  /* rs232.c - use slower C int handlers */
45 #define DEFAULT_CLASS      0    /* floppy.c - 3 or 5 to get only that size */
46 #define LINEWRAP           0    /* console.c - wrap lines at column 80 */
47 #define NO_HANDSHAKE       1    /* rs232.c - don't use CTS/RTS handshaking */
48
49 /* These configuration defines control debugging and unfinished code. */
50 #define FLOPPY_TIMING      0    /* floppy.c - for fine tuning floppy driver */
51 #define MONITOR            0    /* xt_wini.c - monitor loop in w_wait_int */
52 #define RECORD_FLOPPY_SKEW 0    /* floppy.c - for deciding nr_sectors */
53
54 /* These configuration defines control worthless code. */
55 #define SPARE_VIDEO_MEMORY 0    /* misc.c - use memory from any 2nd vid card */
56 #define SPLIMITS           0    /* mpx*.x - set stack limits (never checked) */
57
58 #if (MACHINE == ATARI)
59 /* this define says whether the keyboard generates VT100 or IBM_PC escapes */
60 #define KEYBOARD           VT100 /* either VT100 or IBM_PC */
61 #define VT100              100
62 /* IBM_PC is already defined above. Use IBM_PC to be Minix ST 1.1 compatible */
63
64 /* the next define says whether you have SUPRA or ATARI extended partitioning */
65 /* hook for future extensions; not yet implemented; not yet used */
66 #define PARTITIONING       SUPRA /* either SUPRA or ATARI */
67 #define SUPRA              1
68 /* ATARI is already defined */
69
70 /* define the number of hard disk drives on your system */
71 /* (assuming 2 drives/controller) */
72 #define NR_DRIVES          1    /* typically 0 or 1 */
73 #endif
74
75
76 /*===========================================================================*
77  *      There are no user-settable parameters after this line                *
78  *===========================================================================*/
79 /* Set the CHIP type based on the machine selected. The symbol CHIP is actually
80  * indicative of more than just the CPU.  For example, machines for which
81  * CHIP == INTEL are expected to have 8259A interrrupt controllers and the
82  * other properties of IBM PC/XT/AT/386 types machines in general. */
83 #define INTEL             1     /* CHIP type for PC, XT, AT, 386 and clones */
84 #define M68000            2     /* CHIP type for Atari, Amiga, Macintosh    */
85 #define SPARC             3     /* CHIP type for SUN-4 (e.g. SPARCstation)  */
86
87 #if MACHINE == IBM_PC
88 #define CHIP           INTEL
89 #endif
90
91 #if (MACHINE == ATARI) | (MACHINE == AMIGA) | (MACHINE == MACINTOSH)
92 #define CHIP          M68000
93 #endif
94
95 #if (MACHINE == SUN_4)
96 #define CHIP           SPARC
97 #endif
98
99 #if MACHINE == ATARI
100 #define ASKDEV             1    /* ask for boot device */
101 #define FASTLOAD           1    /* use multiple block transfers to init ram */
102 #endif
103
104 /* The file buf.h uses MAYBE_WRITE_IMMED. */
105 #if ROBUST
106 #define MAYBE_WRITE_IMMED  WRITE_IMMED  /* slower but perhaps safer */
107 #else
108 #define MAYBE_WRITE_IMMED  0            /* faster */
109 #endif
110
111 #ifndef MACHINE
112 #error "In <minix/config.h> please define MACHINE"
113 #endif
114
115 #ifndef CHIP
116 #error "In <minix/config.h> please define MACHINE to have a legal value"
117 #endif
118
119 #if (MACHINE == 0)
120 #error "MACHINE has incorrect value (0)"
121 #endif