mirror of https://github.com/tailix/libkernaux.git
Do not specify int type variant in packed structs
(except for long long)
This commit is contained in:
parent
48a4c1b42c
commit
431f26bcce
|
@ -8,61 +8,61 @@ extern "C" {
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
struct KernAux_ELF_Header {
|
struct KernAux_ELF_Header {
|
||||||
unsigned char magic_0x7F : 8;
|
unsigned magic_0x7F : 8;
|
||||||
unsigned char magic_E : 8;
|
unsigned magic_E : 8;
|
||||||
unsigned char magic_L : 8;
|
unsigned magic_L : 8;
|
||||||
unsigned char magic_F : 8;
|
unsigned magic_F : 8;
|
||||||
unsigned char bitness : 8;
|
unsigned bitness : 8;
|
||||||
unsigned char endianness : 8;
|
unsigned endianness : 8;
|
||||||
unsigned char header_version : 8;
|
unsigned header_version : 8;
|
||||||
unsigned char os_abi : 8;
|
unsigned os_abi : 8;
|
||||||
unsigned long unused1 : 32;
|
unsigned unused1 : 32;
|
||||||
unsigned long unused2 : 32;
|
unsigned unused2 : 32;
|
||||||
unsigned short obj_type : 16;
|
unsigned obj_type : 16;
|
||||||
unsigned short isa : 16;
|
unsigned isa : 16;
|
||||||
unsigned long elf_version : 32;
|
unsigned elf_version : 32;
|
||||||
unsigned long entrypoint : 32;
|
unsigned entrypoint : 32;
|
||||||
unsigned long prog_table_pos : 32;
|
unsigned prog_table_pos : 32;
|
||||||
unsigned long sect_table_pos : 32;
|
unsigned sect_table_pos : 32;
|
||||||
unsigned long arch_flags : 32;
|
unsigned arch_flags : 32;
|
||||||
unsigned short header_size : 16;
|
unsigned header_size : 16;
|
||||||
unsigned short prog_entr_size : 16;
|
unsigned prog_entr_size : 16;
|
||||||
unsigned short prog_entr_num : 16;
|
unsigned prog_entr_num : 16;
|
||||||
unsigned short sect_entr_size : 16;
|
unsigned sect_entr_size : 16;
|
||||||
unsigned short sect_entr_num : 16;
|
unsigned sect_entr_num : 16;
|
||||||
unsigned short sect_names_idx : 16;
|
unsigned sect_names_idx : 16;
|
||||||
}
|
}
|
||||||
__attribute__((packed));
|
__attribute__((packed));
|
||||||
|
|
||||||
struct KernAux_ELF_ProgramEntry {
|
struct KernAux_ELF_ProgramEntry {
|
||||||
unsigned long type : 32;
|
unsigned type : 32;
|
||||||
unsigned long offset : 32;
|
unsigned offset : 32;
|
||||||
unsigned long virt_addr : 32;
|
unsigned virt_addr : 32;
|
||||||
unsigned long phys_addr : 32;
|
unsigned phys_addr : 32;
|
||||||
unsigned long file_size : 32;
|
unsigned file_size : 32;
|
||||||
unsigned long mem_size : 32;
|
unsigned mem_size : 32;
|
||||||
unsigned long flags : 32;
|
unsigned flags : 32;
|
||||||
unsigned long align : 32;
|
unsigned align : 32;
|
||||||
}
|
}
|
||||||
__attribute__((packed));
|
__attribute__((packed));
|
||||||
|
|
||||||
struct KernAux_ELF_SectionEntry {
|
struct KernAux_ELF_SectionEntry {
|
||||||
unsigned long name : 32;
|
unsigned name : 32;
|
||||||
unsigned long type : 32;
|
unsigned type : 32;
|
||||||
unsigned long flags : 32;
|
unsigned flags : 32;
|
||||||
unsigned long vaddr : 32;
|
unsigned vaddr : 32;
|
||||||
unsigned long file_offset : 32;
|
unsigned file_offset : 32;
|
||||||
unsigned long file_size : 32;
|
unsigned file_size : 32;
|
||||||
unsigned long link : 32;
|
unsigned link : 32;
|
||||||
unsigned long info : 32;
|
unsigned info : 32;
|
||||||
unsigned long alignment : 32;
|
unsigned alignment : 32;
|
||||||
unsigned long ent_size : 32;
|
unsigned ent_size : 32;
|
||||||
}
|
}
|
||||||
__attribute__((packed));
|
__attribute__((packed));
|
||||||
|
|
||||||
struct KernAux_ELF_RelocationEntry {
|
struct KernAux_ELF_RelocationEntry {
|
||||||
unsigned long virt_addr : 32;
|
unsigned virt_addr : 32;
|
||||||
unsigned long info : 32;
|
unsigned info : 32;
|
||||||
}
|
}
|
||||||
__attribute__((packed));
|
__attribute__((packed));
|
||||||
|
|
||||||
|
|
|
@ -39,8 +39,8 @@ enum KernAux_Multiboot2_TagType {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct KernAux_Multiboot2 {
|
struct KernAux_Multiboot2 {
|
||||||
unsigned int total_size : 32;
|
unsigned total_size : 32;
|
||||||
unsigned int reserved1 : 32;
|
unsigned reserved1 : 32;
|
||||||
|
|
||||||
unsigned char data[];
|
unsigned char data[];
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@ __attribute__((packed));
|
||||||
|
|
||||||
struct KernAux_Multiboot2_TagBase {
|
struct KernAux_Multiboot2_TagBase {
|
||||||
enum KernAux_Multiboot2_TagType type : 32;
|
enum KernAux_Multiboot2_TagType type : 32;
|
||||||
unsigned int size : 32;
|
unsigned size : 32;
|
||||||
}
|
}
|
||||||
__attribute__((packed));
|
__attribute__((packed));
|
||||||
|
|
||||||
|
@ -86,8 +86,8 @@ struct KernAux_Multiboot2_Tag_Module {
|
||||||
// size = ?
|
// size = ?
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned int mod_start : 32;
|
unsigned mod_start : 32;
|
||||||
unsigned int mod_end : 32;
|
unsigned mod_end : 32;
|
||||||
|
|
||||||
char cmdline[];
|
char cmdline[];
|
||||||
}
|
}
|
||||||
|
@ -98,8 +98,8 @@ struct KernAux_Multiboot2_Tag_BasicMemoryInfo {
|
||||||
// size = 16
|
// size = 16
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned int mem_lower : 32;
|
unsigned mem_lower : 32;
|
||||||
unsigned int mem_upper : 32;
|
unsigned mem_upper : 32;
|
||||||
}
|
}
|
||||||
__attribute__((packed));
|
__attribute__((packed));
|
||||||
|
|
||||||
|
@ -108,9 +108,9 @@ struct KernAux_Multiboot2_Tag_BIOSBootDevice {
|
||||||
// size = 20
|
// size = 20
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned int bios_dev : 32;
|
unsigned bios_dev : 32;
|
||||||
unsigned int partition : 32;
|
unsigned partition : 32;
|
||||||
unsigned int sub_partition : 32;
|
unsigned sub_partition : 32;
|
||||||
}
|
}
|
||||||
__attribute__((packed));
|
__attribute__((packed));
|
||||||
|
|
||||||
|
@ -119,8 +119,8 @@ struct KernAux_Multiboot2_Tag_MemoryMap {
|
||||||
// size = ?
|
// size = ?
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned int entry_size : 32;
|
unsigned entry_size : 32;
|
||||||
unsigned int entry_version : 32;
|
unsigned entry_version : 32;
|
||||||
|
|
||||||
unsigned char data[];
|
unsigned char data[];
|
||||||
}
|
}
|
||||||
|
@ -131,10 +131,10 @@ struct KernAux_Multiboot2_Tag_VBEInfo {
|
||||||
// size = 784
|
// size = 784
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned short vbe_mode : 16;
|
unsigned vbe_mode : 16;
|
||||||
unsigned short vbe_interface_seg : 16;
|
unsigned vbe_interface_seg : 16;
|
||||||
unsigned short vbe_interface_off : 16;
|
unsigned vbe_interface_off : 16;
|
||||||
unsigned short vbe_interface_len : 16;
|
unsigned vbe_interface_len : 16;
|
||||||
unsigned char vbe_control_info[512];
|
unsigned char vbe_control_info[512];
|
||||||
unsigned char vbe_mode_info[256];
|
unsigned char vbe_mode_info[256];
|
||||||
}
|
}
|
||||||
|
@ -146,12 +146,12 @@ struct KernAux_Multiboot2_Tag_FramebufferInfo {
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned long long framebuffer_addr : 64;
|
unsigned long long framebuffer_addr : 64;
|
||||||
unsigned int framebuffer_pitch : 32;
|
unsigned framebuffer_pitch : 32;
|
||||||
unsigned int framebuffer_width : 32;
|
unsigned framebuffer_width : 32;
|
||||||
unsigned int framebuffer_height : 32;
|
unsigned framebuffer_height : 32;
|
||||||
unsigned char framebuffer_bpp : 8;
|
unsigned framebuffer_bpp : 8;
|
||||||
unsigned char framebuffer_type : 8;
|
unsigned framebuffer_type : 8;
|
||||||
unsigned char reserved1 : 8;
|
unsigned reserved1 : 8;
|
||||||
|
|
||||||
unsigned char data[];
|
unsigned char data[];
|
||||||
}
|
}
|
||||||
|
@ -162,10 +162,10 @@ struct KernAux_Multiboot2_Tag_ELFSymbols {
|
||||||
// size = ?
|
// size = ?
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned short num : 16;
|
unsigned num : 16;
|
||||||
unsigned short ent_size : 16;
|
unsigned ent_size : 16;
|
||||||
unsigned short shndx : 16;
|
unsigned shndx : 16;
|
||||||
unsigned short reserved1 : 16;
|
unsigned reserved1 : 16;
|
||||||
|
|
||||||
unsigned char section_headers[];
|
unsigned char section_headers[];
|
||||||
}
|
}
|
||||||
|
@ -176,15 +176,15 @@ struct KernAux_Multiboot2_Tag_APMTable {
|
||||||
// size = 28
|
// size = 28
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned short version : 16;
|
unsigned version : 16;
|
||||||
unsigned short cseg : 16;
|
unsigned cseg : 16;
|
||||||
unsigned int offset : 32;
|
unsigned offset : 32;
|
||||||
unsigned short cseg_16 : 16;
|
unsigned cseg_16 : 16;
|
||||||
unsigned short dseg : 16;
|
unsigned dseg : 16;
|
||||||
unsigned short flags : 16;
|
unsigned flags : 16;
|
||||||
unsigned short cseg_len : 16;
|
unsigned cseg_len : 16;
|
||||||
unsigned short cseg_16_len : 16;
|
unsigned cseg_16_len : 16;
|
||||||
unsigned short dseg_len : 16;
|
unsigned dseg_len : 16;
|
||||||
}
|
}
|
||||||
__attribute__((packed));
|
__attribute__((packed));
|
||||||
|
|
||||||
|
@ -193,7 +193,7 @@ struct KernAux_Multiboot2_Tag_EFI32bitSystemTablePtr {
|
||||||
// size = 12
|
// size = 12
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned int pointer : 32;
|
unsigned pointer : 32;
|
||||||
}
|
}
|
||||||
__attribute__((packed));
|
__attribute__((packed));
|
||||||
|
|
||||||
|
@ -211,8 +211,8 @@ struct KernAux_Multiboot2_Tag_SMBIOSTables {
|
||||||
// size = ?
|
// size = ?
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned char major : 8;
|
unsigned major : 8;
|
||||||
unsigned char minor : 8;
|
unsigned minor : 8;
|
||||||
unsigned char reserved1[6];
|
unsigned char reserved1[6];
|
||||||
|
|
||||||
unsigned char data[];
|
unsigned char data[];
|
||||||
|
@ -251,8 +251,8 @@ struct KernAux_Multiboot2_Tag_EFIMemoryMap {
|
||||||
// size = ?
|
// size = ?
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned int descriptor_size : 32;
|
unsigned descriptor_size : 32;
|
||||||
unsigned int descriptor_version : 32;
|
unsigned descriptor_version : 32;
|
||||||
|
|
||||||
unsigned char data[];
|
unsigned char data[];
|
||||||
}
|
}
|
||||||
|
@ -270,7 +270,7 @@ struct KernAux_Multiboot2_Tag_EFI32bitImageHandlePtr {
|
||||||
// size = 12
|
// size = 12
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned int pointer : 32;
|
unsigned pointer : 32;
|
||||||
}
|
}
|
||||||
__attribute__((packed));
|
__attribute__((packed));
|
||||||
|
|
||||||
|
@ -288,7 +288,7 @@ struct KernAux_Multiboot2_Tag_ImageLoadBasePhysAddr {
|
||||||
// size = 12
|
// size = 12
|
||||||
struct KernAux_Multiboot2_TagBase base;
|
struct KernAux_Multiboot2_TagBase base;
|
||||||
|
|
||||||
unsigned int load_base_addr : 32;
|
unsigned load_base_addr : 32;
|
||||||
}
|
}
|
||||||
__attribute__((packed));
|
__attribute__((packed));
|
||||||
|
|
||||||
|
@ -299,8 +299,8 @@ __attribute__((packed));
|
||||||
struct KernAux_Multiboot2_Tag_MemoryMap_EntryBase {
|
struct KernAux_Multiboot2_Tag_MemoryMap_EntryBase {
|
||||||
unsigned long long base_addr : 64;
|
unsigned long long base_addr : 64;
|
||||||
unsigned long long length : 64;
|
unsigned long long length : 64;
|
||||||
unsigned int type : 32;
|
unsigned type : 32;
|
||||||
unsigned int reserved1 : 32;
|
unsigned reserved1 : 32;
|
||||||
}
|
}
|
||||||
__attribute__((packed));
|
__attribute__((packed));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue