source: trunk/kernel/kernel_config.h @ 623

Last change on this file since 623 was 623, checked in by alain, 6 years ago

Introduce three new types of vsegs (KCODE,KDATA,KDEV)
to map the kernel vsegs in the process VSL and GPT.
This now used by both the TSAR and the I86 architectures.

File size: 21.8 KB
Line 
1/*
2 * kernel_config.h - global kernel configuration arguments
3 *
4 * Authors  Mohamed Lamine Karaoui (2015)
5 *          Alain Greiner (2016,2017,2018,2019)
6 *
7 * Copyright (c)  UPMC Sorbonne Universites
8 *
9 * This file is part of ALMOS-MKH.
10 *
11 * ALMOS-MKH is free software; you can redistribute it and/or modify it
12 * under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; version 2.0 of the License.
14 *
15 * ALMOS-MKH is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with ALMOS-MKH; if not, write to the Free Software Foundation,
22 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 */
24
25#ifndef _KERNEL_CONFIG_H_
26#define _KERNEL_CONFIG_H_
27
28#define CONFIG_ALMOS_VERSION           "Version 1.1 / October 2018"
29
30////////////////////////////////////////////////////////////////////////////////////////////
31//                              KERNEL DEBUG
32//  Each debug variable control one kernel function, or one small group of functions.
33//  - trace is generated only when cycle > debug_value.
34//  - detailed trace is enabled when (debug_value & Ox1) is non zero.
35////////////////////////////////////////////////////////////////////////////////////////////
36
37#define DEBUG_BARRIER_CREATE              0
38#define DEBUG_BARRIER_DESTROY             0
39#define DEBUG_BARRIER_WAIT                0
40
41#define DEBUG_BUSYLOCK                    0
42#define DEBUG_BUSYLOCK_THREAD_XP          0x0ULL  // selected thread xptr
43                 
44#define DEBUG_CHDEV_CMD_RX                0
45#define DEBUG_CHDEV_CMD_TX                0
46#define DEBUG_CHDEV_SERVER_RX             0
47#define DEBUG_CHDEV_SERVER_TX             0
48
49#define DEBUG_CLUSTER_INIT                0
50#define DEBUG_CLUSTER_PID_ALLOC           0
51#define DEBUG_CLUSTER_PID_RELEASE         0
52#define DEBUG_CLUSTER_PROCESS_COPIES      0
53
54#define DEBUG_DEV_TXT_RX                  0
55#define DEBUG_DEV_TXT_TX                  0
56#define DEBUG_DEV_IOC_RX                  0
57#define DEBUG_DEV_IOC_TX                  0
58#define DEBUG_DEV_NIC_RX                  0
59#define DEBUG_DEV_NIC_RX                  0
60#define DEBUG_DEV_FBF_RX                  0
61#define DEBUG_DEV_FBF_TX                  0
62#define DEBUG_DEV_DMA                     0
63#define DEBUG_DEV_MMC                     0
64#define DEBUG_DEV_PIC                     0
65
66#define DEBUG_DEVFS_GLOBAL_INIT           0
67#define DEBUG_DEVFS_LOCAL_INIT            0
68#define DEBUG_DEVFS_MOVE                  0
69
70#define DEBUG_ELF_LOAD                    0
71
72#define DEBUG_DQDT_INIT                   0
73#define DEBUG_DQDT_UPDATE_THREADS         0
74#define DEBUG_DQDT_SELECT_FOR_PROCESS     0
75#define DEBUG_DQDT_UPDATE_PAGES           0
76#define DEBUG_DQDT_SELECT_FOR_MEMORY      0
77
78#define DEBUG_FATFS_ADD_DENTRY            0
79#define DEBUG_FATFS_CLUSTER_ALLOC         0
80#define DEBUG_FATFS_CTX_INIT              0
81#define DEBUG_FATFS_FREE_CLUSTERS         0
82#define DEBUG_FATFS_GET_CLUSTER           0
83#define DEBUG_FATFS_GET_USER_DIR          0
84#define DEBUG_FATFS_MOVE_PAGE             0
85#define DEBUG_FATFS_NEW_DENTRY            0
86#define DEBUG_FATFS_RELEASE_INODE         1
87#define DEBUG_FATFS_REMOVE_DENTRY         0
88#define DEBUG_FATFS_SYNC_FAT              0
89#define DEBUG_FATFS_SYNC_FSINFO           0
90#define DEBUG_FATFS_SYNC_INODE            0
91#define DEBUG_FATFS_UPDATE_DENTRY         0
92
93#define DEBUG_HAL_GPT_SET_PTE             0
94#define DEBUG_HAL_GPT_COPY                0
95#define DEBUG_HAL_GPT_CREATE              0
96#define DEBUG_HAL_GPT_DESTROY             0
97#define DEBUG_HAL_USPACE                  0
98#define DEBUG_HAL_KENTRY                  0
99#define DEBUG_HAL_EXCEPTIONS              0
100#define DEBUG_HAL_IRQS                    0
101#define DEBUG_HAL_TXT_RX                  0
102#define DEBUG_HAL_TXT_TX                  0
103#define DEBUG_HAL_IOC_RX                  0
104#define DEBUG_HAL_IOC_TX                  0
105
106#define DEBUG_KCM                         0
107#define DEBUG_KMEM                        0
108
109#define DEBUG_KERNEL_INIT                 0
110
111#define DEBUG_MAPPER_GET_PAGE             0
112#define DEBUG_MAPPER_HANDLE_MISS          0
113#define DEBUG_MAPPER_MOVE_USER            0
114#define DEBUG_MAPPER_MOVE_KERNEL          0
115#define DEBUG_MAPPER_SYNC                 0
116
117#define DEBUG_MUTEX                       0
118
119#define DEBUG_PPM_ALLOC_PAGES             0
120#define DEBUG_PPM_FREE_PAGES              0
121   
122#define DEBUG_PROCESS_COPY_INIT           0
123#define DEBUG_PROCESS_DESTROY             0
124#define DEBUG_PROCESS_FD_REGISTER         0
125#define DEBUG_PROCESS_GET_LOCAL_COPY      0
126#define DEBUG_PROCESS_INIT_CREATE         0
127#define DEBUG_PROCESS_MAKE_EXEC           0
128#define DEBUG_PROCESS_MAKE_FORK           0
129#define DEBUG_PROCESS_REFERENCE_INIT      0
130#define DEBUG_PROCESS_SIGACTION           0
131#define DEBUG_PROCESS_TXT                 0
132#define DEBUG_PROCESS_ZERO_CREATE         0
133
134#define DEBUG_QUEUELOCK_TYPE              0    // lock type (0 : undefined / 1000 : all types)
135
136#define DEBUG_RPC_CLIENT_GENERIC          0
137#define DEBUG_RPC_SERVER_GENERIC          0
138
139#define DEBUG_RPC_KCM_ALLOC               0
140#define DEBUG_RPC_KCM_FREE                0
141#define DEBUG_RPC_MAPPER_HANDLE_MISS      0
142#define DEBUG_RPC_MAPPER_MOVE_USER        0
143#define DEBUG_RPC_PMEM_GET_PAGES          0
144#define DEBUG_RPC_PMEM_RELEASE_PAGES      0
145#define DEBUG_RPC_PROCESS_MAKE_FORK       0
146#define DEBUG_RPC_PROCESS_SIGACTION       0
147#define DEBUG_RPC_THREAD_USER_CREATE      0
148#define DEBUG_RPC_THREAD_KERNEL_CREATE    0
149#define DEBUG_RPC_VFS_INODE_CREATE        0
150#define DEBUG_RPC_VFS_INODE_DESTROY       0
151#define DEBUG_RPC_VFS_DENTRY_CREATE       0
152#define DEBUG_RPC_VFS_DENTRY_DESTROY      0
153#define DEBUG_RPC_VFS_FILE_CREATE         0
154#define DEBUG_RPC_VFS_FILE_DESTROY        0
155#define DEBUG_RPC_VFS_DEVICE_GET_DENTRY   0
156#define DEBUG_RPC_VMM_CREATE_VSEG         0
157#define DEBUG_RPC_VMM_GET_PTE             0
158#define DEBUG_RPC_VMM_GET_VSEG            0
159#define DEBUG_RPC_VMM_DELETE_VSEG         0
160
161#define DEBUG_RWLOCK_TYPE                 0    // lock type (0 : undefined / 1000 : all types)
162
163#define DEBUG_SCHED_HANDLE_SIGNALS        2
164#define DEBUG_SCHED_YIELD                 2    // must be activated by the trace() syscall
165#define DEBUG_SCHED_RPC_ACTIVATE          0
166
167#define DEBUG_SEM                         0
168
169#define DEBUG_SYSCALLS_ERROR              2
170
171#define DEBUG_SYS_BARRIER                 0
172#define DEBUG_SYS_CLOSE                   0
173#define DEBUG_SYS_CLOSEDIR                0
174#define DEBUG_SYS_CONDVAR                 0
175#define DEBUG_SYS_DISPLAY                 0
176#define DEBUG_SYS_EXEC                    0
177#define DEBUG_SYS_EXIT                    0
178#define DEBUG_SYS_FG                      0
179#define DEBUG_SYS_FORK                    0
180#define DEBUG_SYS_GET_CONFIG              0
181#define DEBUG_SYS_GETCWD                  0
182#define DEBUG_SYS_GETPID                  0
183#define DEBUG_SYS_ISATTY                  0
184#define DEBUG_SYS_IS_FG                   0
185#define DEBUG_SYS_KILL                    0
186#define DEBUG_SYS_OPEN                    0
187#define DEBUG_SYS_OPENDIR                 0
188#define DEBUG_SYS_MKDIR                   0
189#define DEBUG_SYS_MMAP                    0
190#define DEBUG_SYS_MUNMAP                  0
191#define DEBUG_SYS_MUTEX                   0
192#define DEBUG_SYS_READ                    0
193#define DEBUG_SYS_READDIR                 0
194#define DEBUG_SYS_SEM                     0
195#define DEBUG_SYS_STAT                    0
196#define DEBUG_SYS_THREAD_CANCEL           0
197#define DEBUG_SYS_THREAD_CREATE           0
198#define DEBUG_SYS_THREAD_EXIT             0
199#define DEBUG_SYS_THREAD_JOIN             0
200#define DEBUG_SYS_THREAD_SLEEP            0
201#define DEBUG_SYS_THREAD_WAKEUP           0
202#define DEBUG_SYS_THREAD_YIELD            0
203#define DEBUG_SYS_TRACE                   0
204#define DEBUG_SYS_UNLINK                  0
205#define DEBUG_SYS_WAIT                    0
206#define DEBUG_SYS_WRITE                   0
207
208#define DEBUG_THREAD_BLOCK                0
209#define DEBUG_THREAD_DELETE               0
210#define DEBUG_THREAD_DESTROY              0
211#define DEBUG_THREAD_GET_XPTR             0
212#define DEBUG_THREAD_IDLE                 0
213#define DEBUG_THREAD_INIT                 0
214#define DEBUG_THREAD_KERNEL_CREATE        0
215#define DEBUG_THREAD_USER_CREATE          0
216#define DEBUG_THREAD_USER_FORK            0
217#define DEBUG_THREAD_USER_EXEC            0
218
219#define DEBUG_USER_DIR                    0
220
221#define DEBUG_VFS_ADD_CHILD               0
222#define DEBUG_VFS_ADD_SPECIAL             0
223#define DEBUG_VFS_CHDIR                   0
224#define DEBUG_VFS_CLOSE                   0
225#define DEBUG_VFS_DENTRY_CREATE           0
226#define DEBUG_VFS_FILE_CREATE             0
227#define DEBUG_VFS_GET_PATH                0
228#define DEBUG_VFS_INODE_CREATE            0
229#define DEBUG_VFS_INODE_LOAD_ALL          0
230#define DEBUG_VFS_LINK                    0
231#define DEBUG_VFS_LOOKUP                  0
232#define DEBUG_VFS_LSEEK                   0
233#define DEBUG_VFS_MKDIR                   0
234#define DEBUG_VFS_NEW_CHILD_INIT          0
235#define DEBUG_VFS_OPEN                    0
236#define DEBUG_VFS_OPENDIR                 0
237#define DEBUG_VFS_STAT                    0
238#define DEBUG_VFS_UNLINK                  1
239
240#define DEBUG_VMM_CREATE_VSEG             0
241#define DEBUG_VMM_DELETE_VSEG             0
242#define DEBUG_VMM_DESTROY                 0
243#define DEBUG_VMM_FORK_COPY               0
244#define DEBUG_VMM_GET_ONE_PPN             0
245#define DEBUG_VMM_GET_PTE                 0
246#define DEBUG_VMM_HANDLE_PAGE_FAULT       0
247#define DEBUG_VMM_HANDLE_COW              0
248#define DEBUG_VMM_INIT                    0
249#define DEBUG_VMM_MMAP_ALLOC              0
250#define DEBUG_VMM_PAGE_ALLOCATE           0
251#define DEBUG_VMM_RESIZE_VSEG             0
252#define DEBUG_VMM_SET_COW                 0
253#define DEBUG_VMM_UPDATE_PTE              0
254
255#define DEBUG_XHTAB                       0
256
257
258////////////////////////////////////////////////////////////////////////////////////////////
259//                KERNEL LOCKS TYPES MNEMONICS (for debug)
260// It must be kept consistent with the lock_name[] array defined in kernel_init.c file.
261////////////////////////////////////////////////////////////////////////////////////////////
262
263#define LOCK_CLUSTER_KCM       1   // local  (B)  protect dynamic KCM creation in cluster
264#define LOCK_PPM_FREE          2   // local  (B)  protect PPM allocator free_pages lists
265#define LOCK_SCHED_STATE       3   // local  (B)  protect scheduler state for given core
266#define LOCK_VMM_STACK         4   // local  (B)  protect VMM stack vseg allocator   
267#define LOCK_VMM_MMAP          5   // local  (B)  protect VMM mmap vseg allocator
268#define LOCK_VFS_CTX           6   // local  (B)  protect vfs context state
269#define LOCK_KCM_STATE         7   // local  (B)  protect KCM allocator state
270#define LOCK_KHM_STATE         8   // local  (B)  protect KHM allocator state
271#define LOCK_HTAB_STATE        9   // local  (B)  protect a local htab state
272
273#define LOCK_THREAD_JOIN      10   // remote (B)  protect join/exit between two threads
274#define LOCK_XHTAB_STATE      11   // remote (B)  protect  a distributed xhtab state
275#define LOCK_CHDEV_QUEUE      12   // remote (B)  protect chdev threads waiting queue
276#define LOCK_CHDEV_TXT0       13   // remote (B)  protect access to kernel terminal TXT0
277#define LOCK_CHDEV_TXTLIST    14   // remote (B)  protect xlist of processes using same TXT
278#define LOCK_PAGE_STATE       15   // remote (B)  protect physical page descriptor state
279#define LOCK_MUTEX_STATE      16   // remote (B)  protect user mutex state
280#define LOCK_CONDVAR_STATE    17   // remote (B)  protect user condvar state
281#define LOCK_SEM_STATE        18   // remote (B)  protect user semaphore state
282#define LOCK_PROCESS_CWD      19   // remote (B)  protect current working directory in process
283#define LOCK_BARRIER_STATE    20   // remote (B)  protect user barrier state
284
285#define LOCK_CLUSTER_PREFTBL  21   // local  (Q)  protect array of ref. processes in cluster
286
287#define LOCK_PPM_DIRTY        22   // remote (Q)  protect PPM dirty_pages list
288#define LOCK_CLUSTER_LOCALS   23   // remote (Q)  protect xlist of local processes in cluster
289#define LOCK_CLUSTER_COPIES   24   // remote (Q)  protect xlist of process copies in cluster
290#define LOCK_PROCESS_CHILDREN 25   // remote (Q)  protect xlist of chidren process in process
291#define LOCK_PROCESS_USERSYNC 26   // remote (Q)  protect lists of user synchros in process
292#define LOCK_PROCESS_FDARRAY  27   // remote (Q)  protect array of open files in owner process
293#define LOCK_FATFS_FREE       28   // remote (Q)  protect the FATFS context (free clusters)
294#define LOCK_PROCESS_DIR      29   // remote (Q)  protect xlist of open directories in process
295
296#define LOCK_PROCESS_THTBL    30   // local  (RW) protect local array of threads in a process
297
298#define LOCK_MAPPER_STATE     31   // remote (RW) protect mapper state
299#define LOCK_VFS_SIZE         32   // remote (RW) protect inode state and associated mapper
300#define LOCK_VFS_FILE         33   // remote (RW) protect file descriptor state
301#define LOCK_VMM_VSL          34   // remote (RW) protect VSL (local list of vsegs)
302#define LOCK_VMM_GPT          35   // remote (RW) protect GPT (local page table)
303#define LOCK_VFS_MAIN         36   // remote (RW) protect vfs traversal (in root inode)
304
305
306////////////////////////////////////////////////////////////////////////////////////////////
307//                          HARDWARE CONFIGURATION     
308////////////////////////////////////////////////////////////////////////////////////////////
309
310#define CONFIG_KERNEL_IDENTITY_MAP          true       // True for 32 bits cores             
311#define CONFIG_MAX_CLUSTERS_X               16         // max number of clusters in row
312#define CONFIG_MAX_CLUSTERS_Y               16         // max number of clusters in column
313#define CONFIG_MAX_CLUSTERS                 (CONFIG_MAX_CLUSTERS_X * CONFIG_MAX_CLUSTERS_Y)
314#define CONFIG_MAX_LOCAL_CORES              4          // max number of cores per cluster
315#define CONFIG_MAX_INT_DEV                  4          // max number of internal peripherals
316#define CONFIG_MAX_EXT_DEV                  8          // max number of external peripherals
317#define CONFIG_MAX_INTERNAL_IRQS            32         // max number of internal IRQs
318#define CONFIG_MAX_EXTERNAL_IRQS            32         // max number of external IRQs
319#define CONFIG_IRQS_PER_CORE                4          // number of input IRQs per core
320#define CONFIG_CLUSTER_SPAN                 32         // ln(phys. address space per cluster)
321#define CONFIG_CACHE_LINE_SIZE              64         // number of bytes in cache line
322
323#define CONFIG_CACHE_LINE_ALIGNED           __attribute__((aligned(CONFIG_CACHE_LINE_SIZE)))
324
325#define CONFIG_MAX_IOC_CHANNELS             1          // max number of IOC device channels
326#define CONFIG_MAX_FBF_CHANNELS             1          // max number of FBF device channels
327#define CONFIG_MAX_TXT_CHANNELS             8          // max number of TXT device channels
328#define CONFIG_MAX_DMA_CHANNELS             4          // max number of DMA device channels
329#define CONFIG_MAX_NIC_CHANNELS             4          // max number of NIC device channels
330
331#define CONFIG_TXT_ECHO_MODE                1          // echo mode for TXT peripheral
332#define CONFIG_TXT_KBUF_SIZE                512        // kernel buffer for TXT write
333
334#define CONFIG_FBF_WIDTH                    128
335#define CONFIG_FBF_HEIGHT                   128
336
337#define CONFIG_CPU_CTX_SIZE                 256        // up to 64 uint32_t registers
338#define CONFIG_FPU_CTX_SIZE                 256        // up to 32 uint64_t registers
339#define CONFIG_NIC_CHBUF_DEPTH              1          // number of containers in NIC chbuf
340
341////////////////////////////////////////////////////////////////////////////////////////////
342//                            PROCESS MANAGEMENT       
343////////////////////////////////////////////////////////////////////////////////////////////
344
345#define CONFIG_MAX_PROCESS_PER_CLUSTER      16         // max number of owned process
346#define CONFIG_PROCESS_FILE_MAX_NR          16         // max number of open files
347#define CONFIG_PROCESS_MAX_CHILDREN         1024       // max number of children process
348#define CONFIG_PROCESS_HEAP_MIN_SIZE        0x00010000 // user heap min size (bytes)
349#define CONFIG_PROCESS_HEAP_MAX_SIZE        0x30000000 // user heap max size (bytes)
350#define CONFIG_PROCESS_INIT_PATH            "/bin/user/init.elf"
351
352////////////////////////////////////////////////////////////////////////////////////////////
353//                            VIRTUAL FILE SYSTEM       
354////////////////////////////////////////////////////////////////////////////////////////////
355
356#define CONFIG_VFS_MAX_INODES               128        // max number of inodes per cluster
357#define CONFIG_VFS_MAX_NAME_LENGTH          56         // dentry name max length (bytes)
358#define CONFIG_VFS_MAX_PATH_LENGTH          256        // pathname max length (bytes)
359#define CONFIG_VFS_FREE_CLUSTERS_MIN        32         // min number of free clusters
360#define CONFIG_VFS_MAX_DENTRIES             63         // max number of dentries in one dir
361
362#define CONFIG_VFS_ROOT_IS_FATFS            1          // root FS is FATFS if non zero
363#define CONFIG_VFS_ROOT_IS_EX2FS            0          // root FS is EX2FS if non zero
364
365#define CONFIG_MAPPER_GRDXT_W1              7      // number of bits for RADIX_TREE_IX1
366#define CONFIG_MAPPER_GRDXT_W2              7      // number of bits for RADIX_TREE_IX2
367#define CONFIG_MAPPER_GRDXT_W3              6      // number of bits for RADIX_TREE_IX3
368
369////////////////////////////////////////////////////////////////////////////////////////////
370//                                  DQDT       
371////////////////////////////////////////////////////////////////////////////////////////////
372
373#define CONFIG_DQDT_LEVELS_NR               5
374#define CONFIG_DQDT_TICKS_PER_QUANTUM       1        // number of ticks between updates
375
376////////////////////////////////////////////////////////////////////////////////////////////
377//                              RANDOM NUMBERS
378////////////////////////////////////////////////////////////////////////////////////////////
379
380#define CONFIG_RDNG_PARAM_A                 65519
381#define CONFIG_RDNG_PARAM_C                 64037
382
383////////////////////////////////////////////////////////////////////////////////////////////
384//                                SCHEDULING
385////////////////////////////////////////////////////////////////////////////////////////////
386
387#define CONFIG_SCHED_TICK_MS_PERIOD         10000   // number of milliseconds per period
388#define CONFIG_SCHED_TICKS_PER_QUANTUM      1       // number of ticks between scheduling
389#define CONFIG_SCHED_MAX_THREADS_NR         32      // max number of threads per core
390#define CONFIG_SCHED_IDLE_MODE_SLEEP        0       // idle thread use sleep mode if non 0
391
392////////////////////////////////////////////////////////////////////////////////////////////
393//                                 THREADS
394////////////////////////////////////////////////////////////////////////////////////////////
395
396#define CONFIG_THREADS_MAX_PER_CLUSTER      32      // max threads per cluster per process
397#define CONFIG_THREAD_DESC_SIZE             0x4000  // thread desc size (with kernel stack)
398#define CONFIG_THREAD_DESC_ORDER            2       // ln( number of 4K pages )
399
400////////////////////////////////////////////////////////////////////////////////////////////
401//                             REMOTE PROCEDURE CALL
402////////////////////////////////////////////////////////////////////////////////////////////
403
404#define CONFIG_REMOTE_FIFO_SLOTS                    16
405#define CONFIG_REMOTE_FIFO_MAX_ITERATIONS   1024
406#define CONFIG_RPC_THREADS_MAX              4      // max number of RPC threads per core
407
408////////////////////////////////////////////////////////////////////////////////////////////
409//                USER SPACE SEGMENTATION / all values are numbers of pages
410////////////////////////////////////////////////////////////////////////////////////////////
411
412#define CONFIG_VMM_VSPACE_SIZE        0x100000     // virtual space          : 4   Gbytes
413
414#define CONFIG_VMM_KENTRY_BASE        0x000004     // UTILS zone base        : 16  Kbytes
415#define CONFIG_VMM_ELF_BASE           0x000400     // ELF zone base          : 4   Mbytes
416#define CONFIG_VMM_HEAP_BASE          0x002000     // HEAP zone base         : 32  Mbytes
417#define CONFIG_VMM_STACK_BASE         0x0C0000     // STACK zone base        : 3   Gbytes
418
419#define CONFIG_VMM_KENTRY_SIZE        0x000004     // kentry vseg size       : 16  Kbytes
420#define CONFIG_VMM_ARGS_SIZE          0x000004     // args vseg size         : 16  Kbytes
421#define CONFIG_VMM_ENVS_SIZE          0x000008     // envs vseg size         : 32  Kbytes
422#define CONFIG_VMM_STACK_SIZE         0x000100     // single stack vseg size : 1   Mbytes
423
424////////////////////////////////////////////////////////////////////////////////////////////
425//                      PHYSICAL MEMORY MANAGEMENT         
426////////////////////////////////////////////////////////////////////////////////////////////
427
428#define CONFIG_PPM_PAGE_SIZE          4096         // physical page size (bytes)
429#define CONFIG_PPM_PAGE_SHIFT         12           // physical page shift (bits)
430#define CONFIG_PPM_PAGE_MASK          0x00000FFF   // physical page mask     
431#define CONFIG_PPM_MAX_ORDER          16           // ln(total number of pages per cluster)
432#define CONFIG_PPM_HEAP_ORDER         10           // ln(number of heap pages per cluster)
433#define CONFIG_PPM_MAX_RSVD           32           // max reserved zones on the machine
434
435#define CONFIG_KCM_SLOT_SIZE          64           // smallest allocated block (bytes)
436
437#define CONFIG_PPM_PAGE_ALIGNED       __attribute__((aligned(CONFIG_PPM_PAGE_SIZE)))
438
439
440////////////////////////////////////////////////////////////////////////////////////////////
441//                 INSTRUMENTATION
442////////////////////////////////////////////////////////////////////////////////////////////
443
444#define CONFIG_INTRUMENTATION_SYSCALLS  0
445
446
447
448
449
450#endif  /* _KERNEL_CONFIG_H_ */
Note: See TracBrowser for help on using the repository browser.