void vbeprintinfo(void) { struct vbeinfo *info = (void *)VBEMODEADR; uint16_t *modeptr = (uint16_t *)VBEPTR(info->modelst); long cnt; // kmemcpy(&vbectlinfo, (void *)0xa000, sizeof(struct vbeinfo)); kprintf("VBE FB: %ld kilobytes @ 0x%p - 0x%p\n", vbescreen.fbufsize >> 10, vbescreen.fbuf, (void *)((uint8_t *)vbescreen.fbuf + vbescreen.fbufsize - 1)); kprintf("VBE OEM: %s\n", (void *)VBEPTR(&info->oem)); modeptr = (uint16_t *)VBEPTR(vbectlinfo.modelst); kprintf("VBE modes:"); cnt = 0; while (*modeptr != VBEMODELSTEND) { if (*modeptr) { kprintf(" %x", *modeptr); } cnt++; if (cnt == 16) { kprintf("\n"); cnt = 0; } modeptr++; } kprintf("\n"); return; }
void vbeprintinfo(void) { struct vbeinfo *info = (void *)VBEMODEADR; uint16_t *modeptr = (uint16_t *)VBEPTR(info->modelst); // kmemcpy(&vbectlinfo, (void *)0xa000, sizeof(struct vbeinfo)); kprintf("VBE OEM: %s\n", VBEPTR(*((uint32_t *)info->oem))); modeptr = (uint16_t *)VBEPTR(vbectlinfo.modelst); kprintf("VBE modes:"); while (*modeptr != VBEMODELSTEND) { if (*modeptr) { kprintf(" %x", *modeptr); } modeptr++; } kprintf("\n"); return; }