5 #define FS_KERNEL_ADDR 0xffffffc084000000lu
7 #define START_BLOCK 2000
10 #define INIT_KERNEL_STACK 0xffffffc081000000lu
11 #define FREEMEM (INIT_KERNEL_STACK + PAGE_SIZE * 10)
12 #define FREEMEMK 0xffffffc083000000lu
13 #define USER_STACK_ADDR 0xf00010000lu
19 #define PROT_GROWSDOWN 0X01000000
20 #define PROT_GROWSUP 0X02000000
23 #define MAP_SHARED 0x01
24 #define MAP_PRIVATE 0X02
25 #define MAP_FAILED ((void *)-1)
33 extern uint64_t
diskpg[1000];
52 void k_mm_map(uint64_t va, uint64_t pa,
PTE *pgdir);
58 long sys_brk(
unsigned long brk);
void * k_mm_malloc(size_t size)
Definition: mm.c:172
uintptr_t k_mm_alloc_page_helper(uintptr_t va, PTE *pgdir)
Definition: mm.c:334
ptr_t k_mm_alloc_mem(int numPage, uint64_t user_va)
Definition: mm.c:111
uint64_t k_mm_alloc_newva()
Definition: mm.c:178
ptr_t k_mm_alloc_page(int numPage)
Definition: mm.c:149
void k_mm_get_back_disk(uint64_t va, uint64_t new_addr)
Definition: mm.c:78
void k_mm_en_invalid(uint64_t pa_kva, PTE *pgdir)
Definition: mm.c:95
void k_mm_free_page(ptr_t baseAddr, int numPage)
Definition: mm.c:170
int diskpg_num
Definition: mm.c:17
void k_mm_map_kp(uint64_t va, uint64_t pa, PTE *pgdir)
Definition: mm.c:367
uint64_t diskpg[1000]
Definition: mm.c:24
void k_mm_getback_page(int pid)
Definition: mm.c:40
uint64_t PTE
Definition: mm.h:30
ptr_t memCurr
Definition: mm.c:14
void k_mm_map(uint64_t va, uint64_t pa, PTE *pgdir)
Definition: mm.c:403
void k_mm_move_to_disk(uint64_t pg_kva, uint64_t user_va)
Definition: mm.c:63
PTE * k_mm_get_kva(PTE entry)
Definition: mm.c:34
void k_mm_fork_page_helper(uintptr_t va, PTE *destpgdir, PTE *srcpgdir)
Definition: mm.c:308
long k_mm_shm_page_get(int key)
Definition: mm.c:194
uint64_t k_mm_get_kva_from_va(uint64_t va, PTE *pgdir)
Definition: mm.c:341
void k_mm_cancel_pg(PTE *pgdir)
Definition: mm.c:431
long k_mm_getpa(uint64_t va)
Definition: mm.c:357
long sys_brk(unsigned long brk)
Definition: mm.c:489
void k_mm_fork_pgtable(PTE *dest_pgdir, PTE *src_pgdir)
Definition: mm.c:265
void k_mm_share_pgtable(PTE *dest_pgdir, PTE *src_pgdir)
Definition: mm.c:254
long k_mm_shm_page_dt(uintptr_t addr)
Definition: mm.c:222
uint64_t PTE
Definition: pgtable.h:82
uint64_t ptr_t
Definition: types.h:44
uint64 uintptr_t
Definition: types.h:47