ahci: centralize, fix port reset
[minix.git] / include / minix / config.h
blob35036b93407e5c84678f552a994a9bcb5ba13884
1 #ifndef _CONFIG_H
2 #define _CONFIG_H
4 /* Minix release and version numbers. */
5 #define OS_RELEASE "3"
6 #define OS_VERSION "2.1"
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.
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.
20 #include <minix/sys_config.h>
22 /* Number of slots in the process table for non-kernel processes. The number
23 * of system processes defines how many processes with special privileges
24 * there can be. User processes share the same properties and count for one.
26 * These can be changed in sys_config.h.
28 #define NR_PROCS _NR_PROCS
29 #define NR_SYS_PROCS _NR_SYS_PROCS
30 #define NR_SYS_CHUNKS BITMAP_CHUNKS(NR_SYS_PROCS)
32 /* Number of controller tasks (/dev/cN device classes). */
33 #define NR_CTRLRS 2
35 /* DMA_SECTORS may be increased to speed up DMA based drivers. */
36 #define DMA_SECTORS 1 /* DMA buffer size (must be >= 1) */
38 /* Which processes should receive diagnostics from the kernel and system?
39 * Directly sending it to TTY only displays the output. Sending it to the
40 * log driver will cause the diagnostics to be buffered and displayed.
41 * Messages are sent by src/lib/sysutil/kputc.c to these processes, in
42 * the order of this array, which must be terminated by NONE. This is used
43 * by drivers and servers that printf().
44 * The kernel does this for its own kprintf() in kernel/utility.c, also using
45 * this array, but a slightly different mechanism.
47 #define OUTPUT_PROCS_ARRAY { TTY_PROC_NR, LOG_PROC_NR, NONE }
49 /* NR_CONS, NR_RS_LINES, and NR_PTYS determine the number of terminals the
50 * system can handle.
52 #define NR_CONS 4 /* # system consoles (1 to 8) */
53 #define NR_RS_LINES 4 /* # rs232 terminals (0 to 4) */
54 #define NR_PTYS 32 /* # pseudo terminals (0 to 64) */
56 /* This feature enable the counting of system calls in PM and FS */
57 #define ENABLE_SYSCALL_STATS 0
59 /* Max. number of I/O ranges that can be assigned to a process */
60 #define NR_IO_RANGE 64
62 /* Max. number of device memory ranges that can be assigned to a process */
63 #define NR_MEM_RANGE 20
65 /* Max. number of IRQs that can be assigned to a process */
66 #define NR_IRQ 8
68 /* Scheduling priorities. Values must start at zero (highest
69 * priority) and increment.
71 #define NR_SCHED_QUEUES 16 /* MUST equal minimum priority + 1 */
72 #define TASK_Q 0 /* highest, used for kernel tasks */
73 #define MAX_USER_Q 0 /* highest priority for user processes */
74 #define USER_Q ((MIN_USER_Q - MAX_USER_Q) / 2 + MAX_USER_Q) /* default
75 (should correspond to nice 0) */
76 #define MIN_USER_Q (NR_SCHED_QUEUES - 1) /* minimum priority for user
77 processes */
78 /* default scheduling quanta */
79 #define USER_QUANTUM 200
81 /* defualt user process cpu */
82 #define USER_DEFAULT_CPU -1 /* use the default cpu or do not change the
83 current one */
85 /*===========================================================================*
86 * There are no user-settable parameters after this line *
87 *===========================================================================*/
88 /* Set the FP_FORMAT type based on the machine selected, either hw or sw */
89 #define FP_NONE _FP_NONE /* no floating point support */
90 #define FP_IEEE _FP_IEEE /* conform IEEE floating point standard */
92 /* _MINIX_FP_FORMAT is defined in sys_config.h. */
93 #define FP_FORMAT _MINIX_FP_FORMAT
95 /* _ASKDEV and _FASTLOAD are defined in sys_config.h. */
96 #define ASKDEV _ASKDEV
97 #define FASTLOAD _FASTLOAD
99 /* Enable or disable system profiling. */
100 #define SPROFILE 0 /* statistical profiling */
101 #define CPROFILE 0 /* call profiling */
103 /* PCI configuration parameters */
104 #define NR_PCIBUS 40
105 #define NR_PCIDEV 50
107 #endif /* _CONFIG_H */