1: #ifndef _CONFIG_H
   2: #define _CONFIG_H
   3: 
   4: /* Minix release and version numbers. */
   5: #define OS_RELEASE "3"
   6: #define OS_VERSION "1.1"
   7: 
   8: /* This file sets configuration parameters for the MINIX kernel, FS, and PM.
   9:  * It is divided up into two main sections.  The first section contains
  10:  * user-settable parameters.  In the second section, various internal system
  11:  * parameters are set based on the user-settable parameters.
  12:  *
  13:  * Parts of config.h have been moved to sys_config.h, which can be included
  14:  * by other include files that wish to get at the configuration data, but
  15:  * don't want to pollute the users namespace. Some editable values have
  16:  * gone there.
  17:  *
  18:  */
  19: 
  20: /* The MACHINE (called _MINIX_MACHINE) setting can be done
  21:  * in <minix/machine.h>.
  22:  */
  23: #include <minix/sys_config.h>
  24: 
  25: #define MACHINE      _MINIX_MACHINE
  26: 
  27: #define IBM_PC       _MACHINE_IBM_PC
  28: #define SUN_4        _MACHINE_SUN_4
  29: #define SUN_4_60     _MACHINE_SUN_4_60
  30: #define ATARI        _MACHINE_ATARI
  31: #define MACINTOSH    _MACHINE_MACINTOSH
  32: 
  33: /* Number of slots in the process table for non-kernel processes. The number
  34:  * of system processes defines how many processes with special privileges 
  35:  * there can be. User processes share the same properties and count for one. 
  36:  *
  37:  * These can be changed in sys_config.h.
  38:  */
  39: #define NR_PROCS          _NR_PROCS 
  40: #define NR_SYS_PROCS      _NR_SYS_PROCS
  41: 
  42: #if _MINIX_SMALL
  43: 
  44: #define NR_BUFS 100
  45: #define NR_BUF_HASH 128
  46: 
  47: #else
  48: 
  49: /* The buffer cache should be made as large as you can afford. */
  50: #if (MACHINE == IBM_PC && _WORD_SIZE == 2)
  51: #define NR_BUFS           40    /* # blocks in the buffer cache */
  52: #define NR_BUF_HASH       64    /* size of buf hash table; MUST BE POWER OF 2*/
  53: #endif
  54: 
  55: #if (MACHINE == IBM_PC && _WORD_SIZE == 4)
  56: #define NR_BUFS         1200    /* # blocks in the buffer cache */
  57: #define NR_BUF_HASH     2048    /* size of buf hash table; MUST BE POWER OF 2*/
  58: #endif
  59: 
  60: #if (MACHINE == SUN_4_60)
  61: #define NR_BUFS          512    /* # blocks in the buffer cache (<=1536) */
  62: #define NR_BUF_HASH      512    /* size of buf hash table; MUST BE POWER OF 2*/
  63: #endif
  64: 
  65: #endif  /* _MINIX_SMALL */
  66: 
  67: /* Number of controller tasks (/dev/cN device classes). */
  68: #define NR_CTRLRS          2
  69: 
  70: /* Enable or disable the second level file system cache on the RAM disk. */
  71: #define ENABLE_CACHE2      0
  72: 
  73: /* Enable or disable swapping processes to disk. */
  74: #define ENABLE_SWAP        1
  75: 
  76: /* Include or exclude an image of /dev/boot in the boot image. 
  77:  * Please update the makefile in /usr/src/tools/ as well.
  78:  */
  79: #define ENABLE_BOOTDEV     0    /* load image of /dev/boot at boot time */
  80: 
  81: /* DMA_SECTORS may be increased to speed up DMA based drivers. */
  82: #define DMA_SECTORS        1    /* DMA buffer size (must be >= 1) */
  83: 
  84: /* Include or exclude backwards compatibility code. */
  85: #define ENABLE_BINCOMPAT   0    /* for binaries using obsolete calls */
  86: #define ENABLE_SRCCOMPAT   0    /* for sources using obsolete calls */
  87: 
  88: /* Which processes should receive diagnostics from the kernel and system? 
  89:  * Directly sending it to TTY only displays the output. Sending it to the
  90:  * log driver will cause the diagnostics to be buffered and displayed.
  91:  * Messages are sent by src/lib/sysutil/kputc.c to these processes, in
  92:  * the order of this array, which must be terminated by NONE. This is used
  93:  * by drivers and servers that printf().
  94:  * The kernel does this for its own kprintf() in kernel/utility.c, also using
  95:  * this array, but a slightly different mechanism.
  96:  */
  97: #define OUTPUT_PROCS_ARRAY      { TTY_PROC_NR, LOG_PROC_NR, NONE }
  98: 
  99: /* NR_CONS, NR_RS_LINES, and NR_PTYS determine the number of terminals the
 100:  * system can handle.
 101:  */
 102: #define NR_CONS            4    /* # system consoles (1 to 8) */
 103: #define NR_RS_LINES        4    /* # rs232 terminals (0 to 4) */
 104: #define NR_PTYS            32   /* # pseudo terminals (0 to 64) */
 105: 
 106: /*===========================================================================*
 107:  *      There are no user-settable parameters after this line                *
 108:  *===========================================================================*/
 109: /* Set the CHIP type based on the machine selected. The symbol CHIP is actually
 110:  * indicative of more than just the CPU.  For example, machines for which
 111:  * CHIP == INTEL are expected to have 8259A interrrupt controllers and the
 112:  * other properties of IBM PC/XT/AT/386 types machines in general. */
 113: #define INTEL             _CHIP_INTEL   /* CHIP type for PC, XT, AT, 386 and clones */
 114: #define M68000            _CHIP_M68000  /* CHIP type for Atari, Amiga, Macintosh    */
 115: #define SPARC             _CHIP_SPARC   /* CHIP type for SUN-4 (e.g. SPARCstation)  */
 116: 
 117: /* Set the FP_FORMAT type based on the machine selected, either hw or sw    */
 118: #define FP_NONE  _FP_NONE       /* no floating point support                */
 119: #define FP_IEEE  _FP_IEEE       /* conform IEEE floating point standard     */
 120: 
 121: /* _MINIX_CHIP is defined in sys_config.h. */
 122: #define CHIP    _MINIX_CHIP
 123: 
 124: /* _MINIX_FP_FORMAT is defined in sys_config.h. */
 125: #define FP_FORMAT       _MINIX_FP_FORMAT
 126: 
 127: /* _ASKDEV and _FASTLOAD are defined in sys_config.h. */
 128: #define ASKDEV _ASKDEV
 129: #define FASTLOAD _FASTLOAD
 130: 
 131: #endif /* _CONFIG_H */