Kernel/x86 - Clean up some of the task switching code (possibly a little broken)
[tpg/acess2.git] / KernelLand / Kernel / arch / x86 / include / vmem_layout.h
1
2 #ifndef _VMEM_LAYOUT_H_
3 #define _VMEM_LAYOUT_H_
4
5 #define WORKER_STACKS           0x00100000      // Thread0 Only!
6 #define WORKER_STACK_SIZE       MM_KERNEL_STACK_SIZE
7 #define WORKER_STACKS_END       0xB0000000
8 #define NUM_WORKER_STACKS       ((WORKER_STACKS_END-WORKER_STACKS)/WORKER_STACK_SIZE)
9
10 #define PAE_PAGE_TABLE_ADDR     0xFC000000      // 16 MiB
11 #define PAE_PAGE_DIR_ADDR       0xFCFC0000      // 16 KiB
12 #define PAE_PAGE_PDPT_ADDR      0xFCFC3F00      // 32 bytes
13 #define PAE_TMP_PDPT_ADDR       0xFCFC3F20      // 32 bytes
14 #define PAE_TMP_DIR_ADDR        0xFCFE0000      // 16 KiB
15 #define PAE_TMP_TABLE_ADDR      0xFD000000      // 16 MiB
16
17 #define PAGE_TABLE_ADDR 0xFC000000
18 #define PAGE_DIR_ADDR   0xFC3F0000
19 #define PAGE_CR3_ADDR   0xFC3F0FC0
20 #define TMP_CR3_ADDR    0xFC3F0FC4      // Part of core instead of temp
21 #define TMP_DIR_ADDR    0xFC3F1000      // Same
22 #define TMP_TABLE_ADDR  0xFC400000
23
24 #define HW_MAP_ADDR             0xFE000000
25 #define HW_MAP_MAX              0xFFEF0000
26 #define NUM_HW_PAGES    ((HW_MAP_MAX-HW_MAP_ADDR)/0x1000)
27 #define TEMP_MAP_ADDR   0xFFEF0000      // Allows 16 "temp" pages
28 #define NUM_TEMP_PAGES  16
29 #define LAST_BLOCK_ADDR 0xFFFF0000      // Free space for kernel provided user code/ *(-1) protection
30
31 #endif
32

UCC git Repository :: git.ucc.asn.au