X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86%2Finclude%2Fmm_virt.h;h=5e4712f622ba92c1d2864dc7150f8054e893ef0c;hb=7d881c2e5fef91a6570e46ef69a5d4a5cf0e8b4d;hp=cc2d5d81905f0c2a5dd05b54b8565bc74c7398f0;hpb=7514bb8053931759b99f77d3f9ad70446b0625ac;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86/include/mm_virt.h b/Kernel/arch/x86/include/mm_virt.h index cc2d5d81..5e4712f6 100644 --- a/Kernel/arch/x86/include/mm_virt.h +++ b/Kernel/arch/x86/include/mm_virt.h @@ -5,14 +5,33 @@ #ifndef _MM_VIRT_H #define _MM_VIRT_H + +// - Memory Layout +#define MM_USER_MIN 0x00200000 +#define USER_STACK_SZ 0x00020000 // 128 KiB +#define USER_STACK_TOP 0x00800000 +#define USER_LIB_MAX 0xBC000000 +#define MM_USER_MAX 0xBC000000 // Top load address for user libraries +#define MM_PPD_MIN 0xBC000000 // Per-Process Data +#define MM_PPD_VFS 0xBC000000 // +#define MM_PPD_CFG 0xBFFFF000 // +#define MM_PPD_MAX 0xC0000000 // + +#define MM_KHEAP_BASE 0xC0400000 // C+4MiB +#define MM_KHEAP_MAX 0xCF000000 // +#define MM_KERNEL_VFS 0xCF000000 // +#define MM_KUSER_CODE 0xCFFF0000 // 16 Pages +#define MM_MODULE_MIN 0xD0000000 // Lowest Module Address +#define MM_MODULE_MAX 0xF0000000 // 512 MiB + // === FUNCTIONS === -extern void MM_FinishVirtualInit(); -extern void MM_SetCR3(Uint32 CR3); +extern void MM_FinishVirtualInit(void); +extern void MM_SetCR3(Uint CR3); extern tPAddr MM_Allocate(tVAddr VAddr); extern void MM_Deallocate(tVAddr VAddr); extern int MM_Map(tVAddr VAddr, tPAddr PAddr); -extern tPAddr MM_Clone(); -extern tVAddr MM_NewKStack(); -extern tVAddr MM_NewWorkerStack(); +extern tPAddr MM_Clone(void); +extern tVAddr MM_NewKStack(void); +extern tVAddr MM_NewWorkerStack(void); #endif