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_BOOT_THREAD_TIME_SLICE
27#define CONFIG_BOOT_THREAD_TIME_SLICE 5
28#endif
29
30#ifndef CONFIG_KERNEL_WCET_SCALE
31#define CONFIG_KERNEL_WCET_SCALE 1
32#endif
33
34/* the number of scheduler domains */
35#ifndef CONFIG_NUM_DOMAINS
36#define CONFIG_NUM_DOMAINS 16
37#endif
38
39/* number of priorities per domain */
40#ifndef CONFIG_NUM_PRIORITIES
41#define CONFIG_NUM_PRIORITIES 256
42#endif
43
44/* maximum number of caps that can be created in one retype invocation */
45#ifndef CONFIG_RETYPE_FAN_OUT_LIMIT
46#define CONFIG_RETYPE_FAN_OUT_LIMIT 256
47#endif
48
49/* chunk size for memory clears during retype, in bits. */
50#ifndef CONFIG_RESET_CHUNK_BITS
51#define CONFIG_RESET_CHUNK_BITS 8
52#endif
53
54/* maximum number of iterations until we preempt a delete/revoke invocation */
55#ifndef CONFIG_MAX_NUM_WORK_UNITS_PER_PREEMPTION
56#define CONFIG_MAX_NUM_WORK_UNITS_PER_PREEMPTION 100
57#endif
58
59/* address range to flush per preemption work unit */
60#ifndef CONFIG_FLUSH_WORK_UNIT
61#define CONFIG_FLUSH_WORK_UNIT 64
62#endif
63
64/* maximum number of untyped caps in bootinfo */
65/* WARNING: must match value in libsel4! */
66/* CONSTRAINT: (16 * CONFIG_MAX_NUM_BOOTINFO_DEVICE_REGIONS) + (5 * CONFIG_MAX_NUM_BOOTINFO_UNTYPED_CAPS) <= 4036 */
67#ifndef CONFIG_MAX_NUM_BOOTINFO_UNTYPED_CAPS
68#define CONFIG_MAX_NUM_BOOTINFO_UNTYPED_CAPS 166
69#endif
70
71/* maximum number of different tracepoints which can be placed in the kernel */
72#ifndef CONFIG_MAX_NUM_TRACE_POINTS
73#define CONFIG_MAX_NUM_TRACE_POINTS 0
74#endif
75
76/* maximum number of IOMMU RMRR entries we can record while ACPI parsing */
77#ifndef CONFIG_MAX_RMRR_ENTRIES
78#define CONFIG_MAX_RMRR_ENTRIES 32
79#endif
80
81/* maximum number of IOAPIC supported */
82#ifndef CONFIG_MAX_NUM_IOAPIC
83#define CONFIG_MAX_NUM_IOAPIC  1
84#endif
85
86/* Alias CONFIG_MAX_NUM_NODES > 1 to ENABLE_SMP_SUPPORT */
87#if CONFIG_MAX_NUM_NODES > 1
88#define ENABLE_SMP_SUPPORT
89#endif
90
91#endif /* __CONFIG_H */
92