Guest User

Untitled

a guest
Sep 30th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.59 KB | None | 0 0
  1. static void
  2. boot_map_region(pde_t *pgdir, uintptr_t va, size_t size, physaddr_t pa, int perm)
  3. {
  4. #ifndef TP1_PSE
  5.     for (int i = 0; i < ( size / PGSIZE); i++){
  6.         pte_t *pte = pgdir_walk(pgdir,(const void *)(va + (i * PGSIZE)),true);
  7.         *pte = (pa + (i * PGSIZE)) | perm | PTE_P;
  8.     }
  9.    
  10. #else
  11.     size_t page_size = PGSIZE;
  12.     if(va % 22 == 0){
  13.         pgdir[PDX(va)] = pa | PTE_PS| perm | PTE_P;
  14.     }
  15.     else{
  16.         for (int i = 0; i < ( size / page_size); i++){
  17.             pte_t *pte = pgdir_walk(pgdir,(const void *)(va + (i * page_size)),true);
  18.             *pte = (pa + (i * page_size)) | perm | PTE_P;
  19.         }
  20.     }
  21. #endif
  22. }
Advertisement
Add Comment
Please, Sign In to add comment