Changeset View
Changeset View
Standalone View
Standalone View
stand/i386/libi386/multiboot.c
Show First 20 Lines • Show All 268 Lines • ▼ Show 20 Lines | multiboot_exec(struct preloaded_file *fp) | ||||
mb_mod = malloc(sizeof(struct multiboot_mod_list) * NUM_MODULES); | mb_mod = malloc(sizeof(struct multiboot_mod_list) * NUM_MODULES); | ||||
if (mb_mod == NULL) { | if (mb_mod == NULL) { | ||||
error = ENOMEM; | error = ENOMEM; | ||||
goto error; | goto error; | ||||
} | } | ||||
bzero(mb_mod, sizeof(struct multiboot_mod_list) * NUM_MODULES); | bzero(mb_mod, sizeof(struct multiboot_mod_list) * NUM_MODULES); | ||||
error = bi_load64(fp->f_args, 0, &modulep, &kernend, 0); | error = bi_load64(fp->f_args, &modulep, &kernend, 0); | ||||
if (error != 0) { | if (error != 0) { | ||||
printf("bi_load64 failed: %d\n", error); | printf("bi_load64 failed: %d\n", error); | ||||
goto error; | goto error; | ||||
} | } | ||||
mb_mod[0].mod_start = fp->f_addr; | mb_mod[0].mod_start = fp->f_addr; | ||||
mb_mod[0].mod_end = fp->f_addr + fp->f_size - PAGE_SIZE; | mb_mod[0].mod_end = fp->f_addr + fp->f_size - PAGE_SIZE; | ||||
▲ Show 20 Lines • Show All 104 Lines • Show Last 20 Lines |