Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.52 KB | None | 0 0
  1. void init_paging() {
  2.     unsigned int temp_cr0;
  3.     __asm("mov %%cr0, %0" : "=b"(temp_cr0));
  4.     temp_cr0 |= 0x80000000;
  5.     __asm("mov %0, %%cr0" :: "b"(temp_cr0));
  6.     __asm("mov %0, %%cr3" :: "b"(new_pd(ACCS_BIT | WRITE_BIT)));
  7. }
  8.  
  9. void* new_pd(uint16_t flags) {
  10.  
  11.     uint32_t page_directory[1024];
  12.     uint32_t *page_dr = page_directory;
  13.    
  14.     for(uint32_t i = 0; i < 1024; i++)
  15.     {
  16.     page_directory[i] =  new_pt() | flags;
  17.     adress += 4096;
  18.     }
  19.     return page_dr;
  20. }
  21.  
  22. void* new_pt() {
  23.  
  24.     void* pt_adres = pmm_alloc();
  25.     return pt_adress;
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement