Use runtime options instead of conditional compilation for MLFQS,
[pintos-anon] / src / threads / init.h
1 #ifndef THREADS_INIT_H
2 #define THREADS_INIT_H
3
4 #include <debug.h>
5 #include <stdbool.h>
6 #include <stddef.h>
7 #include <stdint.h>
8
9 /* Physical memory size, in 4 kB pages. */
10 extern size_t ram_pages;
11
12 /* Page directory with kernel mappings only. */
13 extern uint32_t *base_page_dir;
14
15 /* -o mlfqs:
16    If false (default), use round-robin scheduler.
17    If true, use multi-level feedback queue scheduler. */
18 extern bool enable_mlfqs;
19
20 #ifdef VM
21 /* -o random-paging:
22    If false (default), use LRU page replacement policy.
23    If true, use random page replacement policy. */
24 extern bool enable_random_paging;
25 #endif
26
27 /* -q: Power off when kernel tasks complete? */
28 extern bool power_off_when_done;
29
30 void power_off (void) NO_RETURN;
31
32 #endif /* threads/init.h */