4 (C) 2014-2015 VOSystems.
7 #include<Diverge/multiboot.h>
8 #include<Diverge/diverge.h>
12 void init_MultiBoot(unsigned long magic, unsigned long addr)
14 multiboot_info_t *mbi = (multiboot_info_t *) addr;
17 MB_memory(mbi, magic);
21 void MB_memory(multiboot_info_t* mbi,unsigned long magic)
23 printTASK("Loading Memory Info");
24 if(magic!=MULTIBOOT_BOOTLOADER_MAGIC){
25 printFAIL("Loading Memory Info");
29 printOK("Loading Memory Info");
30 pc.mem.low_size=mbi->mem_lower;
31 pc.mem.up_size=mbi->mem_upper;
32 pc.mem.size=(pc.mem.low_size + pc.mem.up_size)/1024;
33 ksprintf(meminfo,"Total Memory = %d MiB",pc.mem.size);
38 void MB_apm(multiboot_info_t* mbi)
40 printTASK("Loading APM Info");
41 struct apm_info* apm=(struct apm_info*)mbi->apm_table;
42 pc.apm.version = apm->version;
43 pc.apm.cs32 = apm->cs32;
44 pc.apm.offset = apm->offset;
45 pc.apm.cs16 = apm->cs16;
46 pc.apm.ds16 = apm->ds16;
47 pc.apm.flag = apm->flag;
48 pc.apm.cs32_size = apm->cs32_size;
49 pc.apm.cs16_size = apm->cs16_size;
50 pc.apm.ds_size = apm->ds_size;
51 printOK("Loading APM Info");