Boot framework rework (#45)
[lunaix-os.git] / lunaix-os / arch / x86 / includes / sys / mm / mempart64.h
1 #ifndef __LUNAIX_MEMPART64_H
2 #define __LUNAIX_MEMPART64_H
3
4 #define END_POINT(name) (name + name##_SIZE - 1)
5
6 #ifdef __LD__
7 #define __ulong(val) val
8 #else
9 #define __ulong(val) val##UL
10 #endif
11
12 #define KSTACK_AREA             __ulong(0x0000000100000000)
13 #define KSTACK_AREA_SIZE        __ulong(0x0000000040000000)
14 #define KSTACK_AREA_END END_POINT(KSTACK_AREA)
15
16 #define USR_EXEC                __ulong(0x0000008000000000)
17 #define USR_EXEC_SIZE           __ulong(0x0000002000000000)
18 #define USR_EXEC_END END_POINT(USR_EXEC)
19
20 #define USR_MMAP                __ulong(0x0000010000000000)
21 #define USR_MMAP_SIZE           __ulong(0x0000008000000000)
22 #define USR_MMAP_END END_POINT(USR_MMAP)
23
24 #define USR_STACK               __ulong(0x00007f8000000000)
25 #define USR_STACK_SIZE          __ulong(0x0000001fc0000000)
26 #define USR_STACK_SIZE_THREAD   __ulong(0x0000000000200000)
27 #define USR_STACK_END END_POINT(USR_STACK)
28
29
30 // la casa del kernel
31
32 #define KERNEL_RESIDENT         __ulong(0xfffffd8000000000)     // -2.5T
33 #define VMAP                    KERNEL_RESIDENT                 // -2.5T
34 #define VMAP_SIZE               __ulong(0x0000010000000000)
35 #define VMAP_END END_POINT(VMAP)
36
37 #define VMS_MOUNT_1             __ulong(0xfffffe8000000000)     // -1.5T
38 #define VMS_MOUNT_1_SIZE        __ulong(0x0000008000000000)
39 #define VMS_MOUNT_1_END END_POINT(VMS_MOUNT_1)
40
41 #define VMS_SELF_MOUNT          __ulong(0xffffff0000000000)     // -1T
42
43 #define KMAP                    __ulong(0xffffff8000000000)
44 #define PG_MOUNT_1              KMAP                            // -512G
45 #define PG_MOUNT_1_SIZE         __ulong(0x0000000000001000)
46 #define PG_MOUNT_1_END END_POINT(PG_MOUNT_1)
47
48 #define PG_MOUNT_2              __ulong(0xffffff8000001000)
49 #define PG_MOUNT_2_SIZE         __ulong(0x0000000000001000)
50 #define PG_MOUNT_2_END END_POINT(PG_MOUNT_2)
51
52 #define PG_MOUNT_3              __ulong(0xffffff8000002000)
53 #define PG_MOUNT_3_SIZE         __ulong(0x0000000000001000)
54 #define PG_MOUNT_3_END END_POINT(PG_MOUNT_3)
55
56 #define PG_MOUNT_4              __ulong(0xffffff8000003000)
57 #define PG_MOUNT_4_SIZE         __ulong(0x0000000000001000)
58 #define PG_MOUNT_4_END END_POINT(PG_MOUNT_4)
59
60 #define PG_MOUNT_VAR            __ulong(0xffffff8000004000)
61 #define PG_MOUNT_VAR_SIZE       __ulong(0x000000003fffc000)
62 #define PG_MOUNT_VAR_END END_POINT(PG_MOUNT_VAR)
63
64 #define PMAP                    __ulong(0xffffff8040000000)
65
66 #define KERNEL_IMG              __ulong(0xffffffff80000000)     // -2G
67 #define KERNEL_IMG_SIZE         __ulong(0x0000000080000000)
68 #define KERNEL_IMG_END END_POINT(KERNEL_IMG)
69
70
71 #endif