Guest User

Untitled

a guest
Dec 11th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.69 KB | None | 0 0
  1. void * vg_init(unsigned long mode) {
  2.  
  3.     struct reg86u registries;
  4.     struct mem_range range;
  5.     vbe_mode_info_t vmi;
  6.  
  7.     registries.u.b.intno = 0x10;
  8.     registries.u.b.ah = 0x4F;
  9.     registries.u.b.al = 0x02;
  10.     registries.u.w.bx = 1 << 14 | mode;
  11.     sys_int86(&registries);
  12.  
  13.     vbe_get_mode_info(mode, &vmi);
  14.  
  15.     range.mr_base = vmi.PhysBasePtr;
  16.  
  17.     range.mr_limit = range.mr_base + vmi.XResolution * vmi.YResolution*(vmi.BitsPerPixel);
  18.  
  19.     sys_privctl(SELF, SYS_PRIV_ADD_MEM, &range);
  20.  
  21.     video_mem = vm_map_phys(SELF,(void *) range.mr_base, vmi.XResolution * vmi.YResolution * (vmi.BitsPerPixel));
  22.  
  23.     hres = vmi.YResolution;
  24.     vres = vmi.XResolution;
  25.     bits_per_pixel = vmi.BitsPerPixel;
  26.  
  27.     return NULL;
  28. }
Add Comment
Please, Sign In to add comment