Make sure all multiboot tags are preserved
This commit is contained in:
parent
a46b4f68d0
commit
40999d3da3
@ -34,6 +34,8 @@ static int parse_multiboot2(struct taglist *tags)
|
||||
struct mmap *mmap;
|
||||
|
||||
struct tag *tag = incptr(tags, sizeof(struct taglist));
|
||||
kernel_boot_data.mboot_tags = tag;
|
||||
kernel_boot_data.tags_length = tags->total_size;
|
||||
while(tag->type)
|
||||
{
|
||||
switch(tag->type)
|
||||
@ -99,6 +101,7 @@ int multiboot_page_used(uintptr_t page)
|
||||
fb_size = kernel_boot_data.fbinfo->framebuffer_pitch*(kernel_boot_data.fbinfo->framebuffer_height + 1);
|
||||
}
|
||||
if(
|
||||
within_page(kernel_boot_data.mboot_tags, kernel_boot_data.tags_length) ||
|
||||
within_page(kernel_boot_data.bootloader, strlen(kernel_boot_data.bootloader)) ||
|
||||
within_page(kernel_boot_data.commandline, strlen(kernel_boot_data.commandline)) ||
|
||||
within_page(kernel_boot_data.mmap, kernel_boot_data.mmap_size) ||
|
||||
|
@ -27,6 +27,8 @@ struct fbinfo {
|
||||
|
||||
struct kernel_boot_data_st{
|
||||
int multiboot_version;
|
||||
void *mboot_tags;
|
||||
size_t tags_length;
|
||||
char *bootloader;
|
||||
char *commandline;
|
||||
size_t mmap_size;
|
||||
|
Loading…
x
Reference in New Issue
Block a user