Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static void
- boot_map_region(pde_t *pgdir, uintptr_t va, size_t size, physaddr_t pa, int perm)
- {
- #ifndef TP1_PSE
- for (int i = 0; i < ( size / PGSIZE); i++){
- pte_t *pte = pgdir_walk(pgdir,(const void *)(va + (i * PGSIZE)),true);
- *pte = (pa + (i * PGSIZE)) | perm | PTE_P;
- }
- #else
- size_t page_size = PGSIZE;
- if(va % 22 == 0){
- pgdir[PDX(va)] = pa | PTE_PS| perm | PTE_P;
- }
- else{
- for (int i = 0; i < ( size / page_size); i++){
- pte_t *pte = pgdir_walk(pgdir,(const void *)(va + (i * page_size)),true);
- *pte = (pa + (i * page_size)) | perm | PTE_P;
- }
- }
- #endif
- }
Advertisement
Add Comment
Please, Sign In to add comment