Write code

This commit is contained in:
Alex Kotov 2022-01-13 19:36:58 +05:00
parent 2c3714b99c
commit e3e42582b8
1 changed files with 48 additions and 2 deletions

View File

@ -60,8 +60,54 @@ bool KernAux_Multiboot2_Header_is_valid(
bool KernAux_Multiboot2_HTagBase_is_valid(
const struct KernAux_Multiboot2_HTagBase *tag_base
) {
// TODO: write this
return false;
switch (tag_base->type) {
case KERNAUX_MULTIBOOT2_HTAG_NONE:
return KernAux_Multiboot2_HTag_None_is_valid(
(struct KernAux_Multiboot2_HTag_None*)tag_base
);
case KERNAUX_MULTIBOOT2_HTAG_INFO_REQ:
return KernAux_Multiboot2_HTag_InfoReq_is_valid(
(struct KernAux_Multiboot2_HTag_InfoReq*)tag_base
);
case KERNAUX_MULTIBOOT2_HTAG_ADDR:
return KernAux_Multiboot2_HTag_Addr_is_valid(
(struct KernAux_Multiboot2_HTag_Addr*)tag_base
);
case KERNAUX_MULTIBOOT2_HTAG_ENTRY_ADDR:
return KernAux_Multiboot2_HTag_EntryAddr_is_valid(
(struct KernAux_Multiboot2_HTag_EntryAddr*)tag_base
);
case KERNAUX_MULTIBOOT2_HTAG_FLAGS:
return KernAux_Multiboot2_HTag_Flags_is_valid(
(struct KernAux_Multiboot2_HTag_Flags*)tag_base
);
case KERNAUX_MULTIBOOT2_HTAG_FRAMEBUFFER:
return KernAux_Multiboot2_HTag_Framebuffer_is_valid(
(struct KernAux_Multiboot2_HTag_Framebuffer*)tag_base
);
case KERNAUX_MULTIBOOT2_HTAG_MODULE_ALIGN:
return KernAux_Multiboot2_HTag_ModuleAlign_is_valid(
(struct KernAux_Multiboot2_HTag_ModuleAlign*)tag_base
);
case KERNAUX_MULTIBOOT2_HTAG_EFI_BOOT_SERVICES:
return KernAux_Multiboot2_HTag_EFIBootServices_is_valid(
(struct KernAux_Multiboot2_HTag_EFIBootServices*)tag_base
);
case KERNAUX_MULTIBOOT2_HTAG_EFI_I386_ENTRY_ADDR:
return KernAux_Multiboot2_HTag_EFII386EntryAddr_is_valid(
(struct KernAux_Multiboot2_HTag_EFII386EntryAddr*)tag_base
);
case KERNAUX_MULTIBOOT2_HTAG_EFI_AMD64_ENTRY_ADDR:
return KernAux_Multiboot2_HTag_EFIAmd64EntryAddr_is_valid(
(struct KernAux_Multiboot2_HTag_EFIAmd64EntryAddr*)tag_base
);
case KERNAUX_MULTIBOOT2_HTAG_RELOCATABLE_HEADER:
return KernAux_Multiboot2_HTag_RelocatableHeader_is_valid(
(struct KernAux_Multiboot2_HTag_RelocatableHeader*)tag_base
);
default:
return false;
}
}
bool KernAux_Multiboot2_HTag_None_is_valid(