1/*
2 * Copyright 2014, General Dynamics C4 Systems
3 *
4 * This software may be distributed and modified according to the terms of
5 * the GNU General Public License version 2. Note that NO WARRANTY is provided.
6 * See "LICENSE_GPLv2.txt" for details.
7 *
8 * @TAG(GD_GPL)
9 */
10
11#ifndef __CONFIG_H
12#define __CONFIG_H
13
14/* Compile-time configuration parameters. Might be set by the build system. */
15
16#ifdef HAVE_AUTOCONF
17#include <autoconf.h>
18#endif
19
20/* size of the initial thread's root CNode (2^x slots, x >= 4) */
21#ifndef CONFIG_ROOT_CNODE_SIZE_BITS
22#define CONFIG_ROOT_CNODE_SIZE_BITS 12
23#endif
24
25/* number of timer ticks until a thread is preempted  */
26#ifndef CONFIG_TIME_SLICE
27#define CONFIG_TIME_SLICE 5
28#endif
29
30/* the number of scheduler domains */
31#ifndef CONFIG_NUM_DOMAINS
32#define CONFIG_NUM_DOMAINS 16
33#endif
34
35/* number of priorities per domain */
36#ifndef CONFIG_NUM_PRIORITIES
37#define CONFIG_NUM_PRIORITIES 256
38#endif
39
40/* maximum number of caps that can be created in one retype invocation */
41#ifndef CONFIG_RETYPE_FAN_OUT_LIMIT
42#define CONFIG_RETYPE_FAN_OUT_LIMIT 256
43#endif
44
45/* chunk size for memory clears during retype, in bits. */
46#ifndef CONFIG_RESET_CHUNK_BITS
47#define CONFIG_RESET_CHUNK_BITS 8
48#endif
49
50/* maximum number of iterations until we preempt a delete/revoke invocation */
51#ifndef CONFIG_MAX_NUM_WORK_UNITS_PER_PREEMPTION
52#define CONFIG_MAX_NUM_WORK_UNITS_PER_PREEMPTION 100
53#endif
54
55/* address range to flush per preemption work unit */
56#ifndef CONFIG_FLUSH_WORK_UNIT
57#define CONFIG_FLUSH_WORK_UNIT 64
58#endif
59
60/* maximum number of untyped caps in bootinfo */
61/* WARNING: must match value in libsel4! */
62/* CONSTRAINT: (16 * CONFIG_MAX_NUM_BOOTINFO_DEVICE_REGIONS) + (5 * CONFIG_MAX_NUM_BOOTINFO_UNTYPED_CAPS) <= 4036 */
63#ifndef CONFIG_MAX_NUM_BOOTINFO_UNTYPED_CAPS
64#define CONFIG_MAX_NUM_BOOTINFO_UNTYPED_CAPS 166
65#endif
66
67/* length of a timer tick in ms  */
68#ifndef CONFIG_TIMER_TICK_MS
69#define CONFIG_TIMER_TICK_MS 2
70#endif
71
72/* maximum number of different tracepoints which can be placed in the kernel */
73#ifndef CONFIG_MAX_NUM_TRACE_POINTS
74#define CONFIG_MAX_NUM_TRACE_POINTS 0
75#endif
76
77/* maximum number of IOMMU RMRR entries we can record while ACPI parsing */
78#ifndef CONFIG_MAX_RMRR_ENTRIES
79#define CONFIG_MAX_RMRR_ENTRIES 32
80#endif
81
82/* maximum number of IOAPIC supported */
83#ifndef CONFIG_MAX_NUM_IOAPIC
84#define CONFIG_MAX_NUM_IOAPIC  1
85#endif
86
87/* Alias CONFIG_MAX_NUM_NODES > 1 to ENABLE_SMP_SUPPORT */
88#if CONFIG_MAX_NUM_NODES > 1
89#define ENABLE_SMP_SUPPORT
90#endif
91
92#endif /* __CONFIG_H */
93