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