#include #include "fb.h" static uint32_t * process_mbinfo_tag(uint32_t * mbinfo) { uint32_t type = mbinfo[0]; uint32_t size = mbinfo[1]; switch (type) { case 0u: return 0u; case 8u: fb_init((uint32_t *)mbinfo[2], mbinfo[5], mbinfo[6], mbinfo[4]); break; } return (uint32_t *)(((uint32_t)mbinfo + size + 7u) & 0xFFFFFFF8u); } static void process_mbinfo(uint32_t * mbinfo) { /* Skip multiboot2 boot information header. */ mbinfo += 2u; do { mbinfo = process_mbinfo_tag(mbinfo); } while (mbinfo != (uint32_t *)0u); } void hos_main(uint32_t * mbinfo) { process_mbinfo(mbinfo); }