kern: mmap: make the lowest mmap address MiB; mmap ld.so at MiB
[akaros.git] / kern / include / ros / memlayout.h
1 #ifndef ROS_INC_MEMLAYOUT_H
2 #define ROS_INC_MEMLAYOUT_H
3
4 #ifndef __ASSEMBLER__
5 #include <ros/common.h>
6 #endif /* not __ASSEMBLER__ */
7
8 #include <ros/arch/mmu.h>
9
10 /*
11  * This file contains definitions for memory management in our OS,
12  * which are relevant to both the kernel and user-mode software.
13  */
14
15 /* TODO: sort out multiboot being in src/ (depends on this) */
16 #ifndef EXTPHYSMEM
17 #define EXTPHYSMEM      0x100000
18 #endif
19
20 /* Read-only, per-process shared info structures */
21 #define UINFO                   (UVPT - PTSIZE)
22 /* Top of user-writable VM */
23 #define UWLIM                   UINFO
24 /* Read-write, per-process shared info structures */
25 #define UDATA                   (UWLIM - PTSIZE)
26 /* Read-write, global page.  Shared by all processes. */
27 #define UGDATA                  (UDATA - PGSIZE)
28 /* Limit of what is mmap()/munmap()-able */
29 #define UMAPTOP                 UGDATA
30 /* Top of normal user stack */
31 #define USTACKTOP               UMAPTOP
32 /* Stack size of thread0, allocated by the kernel */
33 #define USTACK_NUM_PAGES        256
34
35 #endif /* !ROS_INC_MEMLAYOUT_H */