core: Make findMultibootTags take a context argument
Will be useful later.
This commit is contained in:
parent
adffd408bc
commit
8bfc8a5781
@ -68,7 +68,7 @@ pub fn findMultibootTag(comptime Type: type, info: MultibootInfo) ?*Type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Find every multiboot tag of the given type.
|
/// Find every multiboot tag of the given type.
|
||||||
pub fn findMultibootTags(comptime Type: type, info: MultibootInfo, callback: *const fn (tag: *Type) void) void {
|
pub fn findMultibootTags(comptime Type: type, info: MultibootInfo, callback: *const fn (tag: *Type, ctx: *const anyopaque) void, ctx: *const anyopaque) void {
|
||||||
const mb_tag: *easyboot.multiboot_info_t = @alignCast(@ptrCast(info));
|
const mb_tag: *easyboot.multiboot_info_t = @alignCast(@ptrCast(info));
|
||||||
const mb_size = mb_tag.total_size;
|
const mb_size = mb_tag.total_size;
|
||||||
|
|
||||||
@ -77,43 +77,43 @@ pub fn findMultibootTags(comptime Type: type, info: MultibootInfo, callback: *co
|
|||||||
while ((@intFromPtr(tag) < last) and (tag.type != easyboot.MULTIBOOT_TAG_TYPE_END)) {
|
while ((@intFromPtr(tag) < last) and (tag.type != easyboot.MULTIBOOT_TAG_TYPE_END)) {
|
||||||
switch (tag.type) {
|
switch (tag.type) {
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_CMDLINE => {
|
easyboot.MULTIBOOT_TAG_TYPE_CMDLINE => {
|
||||||
if (Type == easyboot.multiboot_tag_cmdline_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_cmdline_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_BOOT_LOADER_NAME => {
|
easyboot.MULTIBOOT_TAG_TYPE_BOOT_LOADER_NAME => {
|
||||||
if (Type == easyboot.multiboot_tag_loader_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_loader_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_MODULE => {
|
easyboot.MULTIBOOT_TAG_TYPE_MODULE => {
|
||||||
if (Type == easyboot.multiboot_tag_module_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_module_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_MMAP => {
|
easyboot.MULTIBOOT_TAG_TYPE_MMAP => {
|
||||||
if (Type == easyboot.multiboot_tag_mmap_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_mmap_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_FRAMEBUFFER => {
|
easyboot.MULTIBOOT_TAG_TYPE_FRAMEBUFFER => {
|
||||||
if (Type == easyboot.multiboot_tag_framebuffer_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_framebuffer_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_EFI64 => {
|
easyboot.MULTIBOOT_TAG_TYPE_EFI64 => {
|
||||||
if (Type == easyboot.multiboot_tag_efi64_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_efi64_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_EFI64_IH => {
|
easyboot.MULTIBOOT_TAG_TYPE_EFI64_IH => {
|
||||||
if (Type == easyboot.multiboot_tag_efi64_ih_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_efi64_ih_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_SMBIOS => {
|
easyboot.MULTIBOOT_TAG_TYPE_SMBIOS => {
|
||||||
if (Type == easyboot.multiboot_tag_smbios_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_smbios_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_ACPI_OLD => {
|
easyboot.MULTIBOOT_TAG_TYPE_ACPI_OLD => {
|
||||||
if (Type == easyboot.multiboot_tag_old_acpi_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_old_acpi_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_ACPI_NEW => {
|
easyboot.MULTIBOOT_TAG_TYPE_ACPI_NEW => {
|
||||||
if (Type == easyboot.multiboot_tag_new_acpi_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_new_acpi_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_SMP => {
|
easyboot.MULTIBOOT_TAG_TYPE_SMP => {
|
||||||
if (Type == easyboot.multiboot_tag_smp_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_smp_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_PARTUUID => {
|
easyboot.MULTIBOOT_TAG_TYPE_PARTUUID => {
|
||||||
if (Type == easyboot.multiboot_tag_partuuid_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_partuuid_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
easyboot.MULTIBOOT_TAG_TYPE_EDID => {
|
easyboot.MULTIBOOT_TAG_TYPE_EDID => {
|
||||||
if (Type == easyboot.multiboot_tag_edid_t) callback(@alignCast(@ptrCast(tag)));
|
if (Type == easyboot.multiboot_tag_edid_t) callback(@alignCast(@ptrCast(tag)), ctx);
|
||||||
},
|
},
|
||||||
else => {},
|
else => {},
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user