Do not specify int type variant in packed structs

(except for long long)
This commit is contained in:
Alex Kotov 2021-12-16 17:19:43 +05:00
parent 48a4c1b42c
commit 431f26bcce
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
2 changed files with 87 additions and 87 deletions

View File

@ -8,61 +8,61 @@ extern "C" {
#include <stdbool.h>
struct KernAux_ELF_Header {
unsigned char magic_0x7F : 8;
unsigned char magic_E : 8;
unsigned char magic_L : 8;
unsigned char magic_F : 8;
unsigned char bitness : 8;
unsigned char endianness : 8;
unsigned char header_version : 8;
unsigned char os_abi : 8;
unsigned long unused1 : 32;
unsigned long unused2 : 32;
unsigned short obj_type : 16;
unsigned short isa : 16;
unsigned long elf_version : 32;
unsigned long entrypoint : 32;
unsigned long prog_table_pos : 32;
unsigned long sect_table_pos : 32;
unsigned long arch_flags : 32;
unsigned short header_size : 16;
unsigned short prog_entr_size : 16;
unsigned short prog_entr_num : 16;
unsigned short sect_entr_size : 16;
unsigned short sect_entr_num : 16;
unsigned short sect_names_idx : 16;
unsigned magic_0x7F : 8;
unsigned magic_E : 8;
unsigned magic_L : 8;
unsigned magic_F : 8;
unsigned bitness : 8;
unsigned endianness : 8;
unsigned header_version : 8;
unsigned os_abi : 8;
unsigned unused1 : 32;
unsigned unused2 : 32;
unsigned obj_type : 16;
unsigned isa : 16;
unsigned elf_version : 32;
unsigned entrypoint : 32;
unsigned prog_table_pos : 32;
unsigned sect_table_pos : 32;
unsigned arch_flags : 32;
unsigned header_size : 16;
unsigned prog_entr_size : 16;
unsigned prog_entr_num : 16;
unsigned sect_entr_size : 16;
unsigned sect_entr_num : 16;
unsigned sect_names_idx : 16;
}
__attribute__((packed));
struct KernAux_ELF_ProgramEntry {
unsigned long type : 32;
unsigned long offset : 32;
unsigned long virt_addr : 32;
unsigned long phys_addr : 32;
unsigned long file_size : 32;
unsigned long mem_size : 32;
unsigned long flags : 32;
unsigned long align : 32;
unsigned type : 32;
unsigned offset : 32;
unsigned virt_addr : 32;
unsigned phys_addr : 32;
unsigned file_size : 32;
unsigned mem_size : 32;
unsigned flags : 32;
unsigned align : 32;
}
__attribute__((packed));
struct KernAux_ELF_SectionEntry {
unsigned long name : 32;
unsigned long type : 32;
unsigned long flags : 32;
unsigned long vaddr : 32;
unsigned long file_offset : 32;
unsigned long file_size : 32;
unsigned long link : 32;
unsigned long info : 32;
unsigned long alignment : 32;
unsigned long ent_size : 32;
unsigned name : 32;
unsigned type : 32;
unsigned flags : 32;
unsigned vaddr : 32;
unsigned file_offset : 32;
unsigned file_size : 32;
unsigned link : 32;
unsigned info : 32;
unsigned alignment : 32;
unsigned ent_size : 32;
}
__attribute__((packed));
struct KernAux_ELF_RelocationEntry {
unsigned long virt_addr : 32;
unsigned long info : 32;
unsigned virt_addr : 32;
unsigned info : 32;
}
__attribute__((packed));

View File

@ -39,8 +39,8 @@ enum KernAux_Multiboot2_TagType {
};
struct KernAux_Multiboot2 {
unsigned int total_size : 32;
unsigned int reserved1 : 32;
unsigned total_size : 32;
unsigned reserved1 : 32;
unsigned char data[];
}
@ -48,7 +48,7 @@ __attribute__((packed));
struct KernAux_Multiboot2_TagBase {
enum KernAux_Multiboot2_TagType type : 32;
unsigned int size : 32;
unsigned size : 32;
}
__attribute__((packed));
@ -86,8 +86,8 @@ struct KernAux_Multiboot2_Tag_Module {
// size = ?
struct KernAux_Multiboot2_TagBase base;
unsigned int mod_start : 32;
unsigned int mod_end : 32;
unsigned mod_start : 32;
unsigned mod_end : 32;
char cmdline[];
}
@ -98,8 +98,8 @@ struct KernAux_Multiboot2_Tag_BasicMemoryInfo {
// size = 16
struct KernAux_Multiboot2_TagBase base;
unsigned int mem_lower : 32;
unsigned int mem_upper : 32;
unsigned mem_lower : 32;
unsigned mem_upper : 32;
}
__attribute__((packed));
@ -108,9 +108,9 @@ struct KernAux_Multiboot2_Tag_BIOSBootDevice {
// size = 20
struct KernAux_Multiboot2_TagBase base;
unsigned int bios_dev : 32;
unsigned int partition : 32;
unsigned int sub_partition : 32;
unsigned bios_dev : 32;
unsigned partition : 32;
unsigned sub_partition : 32;
}
__attribute__((packed));
@ -119,8 +119,8 @@ struct KernAux_Multiboot2_Tag_MemoryMap {
// size = ?
struct KernAux_Multiboot2_TagBase base;
unsigned int entry_size : 32;
unsigned int entry_version : 32;
unsigned entry_size : 32;
unsigned entry_version : 32;
unsigned char data[];
}
@ -131,10 +131,10 @@ struct KernAux_Multiboot2_Tag_VBEInfo {
// size = 784
struct KernAux_Multiboot2_TagBase base;
unsigned short vbe_mode : 16;
unsigned short vbe_interface_seg : 16;
unsigned short vbe_interface_off : 16;
unsigned short vbe_interface_len : 16;
unsigned vbe_mode : 16;
unsigned vbe_interface_seg : 16;
unsigned vbe_interface_off : 16;
unsigned vbe_interface_len : 16;
unsigned char vbe_control_info[512];
unsigned char vbe_mode_info[256];
}
@ -146,12 +146,12 @@ struct KernAux_Multiboot2_Tag_FramebufferInfo {
struct KernAux_Multiboot2_TagBase base;
unsigned long long framebuffer_addr : 64;
unsigned int framebuffer_pitch : 32;
unsigned int framebuffer_width : 32;
unsigned int framebuffer_height : 32;
unsigned char framebuffer_bpp : 8;
unsigned char framebuffer_type : 8;
unsigned char reserved1 : 8;
unsigned framebuffer_pitch : 32;
unsigned framebuffer_width : 32;
unsigned framebuffer_height : 32;
unsigned framebuffer_bpp : 8;
unsigned framebuffer_type : 8;
unsigned reserved1 : 8;
unsigned char data[];
}
@ -162,10 +162,10 @@ struct KernAux_Multiboot2_Tag_ELFSymbols {
// size = ?
struct KernAux_Multiboot2_TagBase base;
unsigned short num : 16;
unsigned short ent_size : 16;
unsigned short shndx : 16;
unsigned short reserved1 : 16;
unsigned num : 16;
unsigned ent_size : 16;
unsigned shndx : 16;
unsigned reserved1 : 16;
unsigned char section_headers[];
}
@ -176,15 +176,15 @@ struct KernAux_Multiboot2_Tag_APMTable {
// size = 28
struct KernAux_Multiboot2_TagBase base;
unsigned short version : 16;
unsigned short cseg : 16;
unsigned int offset : 32;
unsigned short cseg_16 : 16;
unsigned short dseg : 16;
unsigned short flags : 16;
unsigned short cseg_len : 16;
unsigned short cseg_16_len : 16;
unsigned short dseg_len : 16;
unsigned version : 16;
unsigned cseg : 16;
unsigned offset : 32;
unsigned cseg_16 : 16;
unsigned dseg : 16;
unsigned flags : 16;
unsigned cseg_len : 16;
unsigned cseg_16_len : 16;
unsigned dseg_len : 16;
}
__attribute__((packed));
@ -193,7 +193,7 @@ struct KernAux_Multiboot2_Tag_EFI32bitSystemTablePtr {
// size = 12
struct KernAux_Multiboot2_TagBase base;
unsigned int pointer : 32;
unsigned pointer : 32;
}
__attribute__((packed));
@ -211,8 +211,8 @@ struct KernAux_Multiboot2_Tag_SMBIOSTables {
// size = ?
struct KernAux_Multiboot2_TagBase base;
unsigned char major : 8;
unsigned char minor : 8;
unsigned major : 8;
unsigned minor : 8;
unsigned char reserved1[6];
unsigned char data[];
@ -251,8 +251,8 @@ struct KernAux_Multiboot2_Tag_EFIMemoryMap {
// size = ?
struct KernAux_Multiboot2_TagBase base;
unsigned int descriptor_size : 32;
unsigned int descriptor_version : 32;
unsigned descriptor_size : 32;
unsigned descriptor_version : 32;
unsigned char data[];
}
@ -270,7 +270,7 @@ struct KernAux_Multiboot2_Tag_EFI32bitImageHandlePtr {
// size = 12
struct KernAux_Multiboot2_TagBase base;
unsigned int pointer : 32;
unsigned pointer : 32;
}
__attribute__((packed));
@ -288,7 +288,7 @@ struct KernAux_Multiboot2_Tag_ImageLoadBasePhysAddr {
// size = 12
struct KernAux_Multiboot2_TagBase base;
unsigned int load_base_addr : 32;
unsigned load_base_addr : 32;
}
__attribute__((packed));
@ -299,8 +299,8 @@ __attribute__((packed));
struct KernAux_Multiboot2_Tag_MemoryMap_EntryBase {
unsigned long long base_addr : 64;
unsigned long long length : 64;
unsigned int type : 32;
unsigned int reserved1 : 32;
unsigned type : 32;
unsigned reserved1 : 32;
}
__attribute__((packed));