#pragma pack() is also supported in GCC

This commit is contained in:
Jozef Nagy 2024-03-30 09:43:51 +01:00
parent 4d1fb71456
commit 2b8129b83b
No known key found for this signature in database
GPG key ID: 5B49DC29F09685D6
2 changed files with 3 additions and 29 deletions

View file

@ -197,10 +197,7 @@ typedef struct {
} EFI_GUID; } EFI_GUID;
// MBR Partition Entry // MBR Partition Entry
#if defined(_MSC_VER)
#pragma pack(1) #pragma pack(1)
#endif
typedef struct { typedef struct {
UINT8 BootIndicator; UINT8 BootIndicator;
UINT8 StartHead; UINT8 StartHead;
@ -212,36 +209,22 @@ typedef struct {
UINT8 EndTrack; UINT8 EndTrack;
UINT8 StartingLBA[4]; UINT8 StartingLBA[4];
UINT8 SizeInLBA[4]; UINT8 SizeInLBA[4];
#if defined(_MSC_VER)
} MBR_PARTITION_RECORD; } MBR_PARTITION_RECORD;
#pragma pack() #pragma pack()
#else
} __attribute__((packed)) MBR_PARTITION_RECORD;
#endif
// Master Boot Record // Master Boot Record
#if defined(_MSC_VER)
#pragma pack(1) #pragma pack(1)
#endif
typedef struct { typedef struct {
UINT8 BootStrapCode[440]; UINT8 BootStrapCode[440];
UINT8 UniqueMbrSignature[4]; UINT8 UniqueMbrSignature[4];
UINT8 Unknown[2]; UINT8 Unknown[2];
MBR_PARTITION_RECORD Partition[4]; MBR_PARTITION_RECORD Partition[4];
UINT16 Signature; UINT16 Signature;
#if defined(_MSC_VER)
} MASTER_BOOT_RECORD; } MASTER_BOOT_RECORD;
#pragma pack() #pragma pack()
#else
} __attribute__((packed)) MASTER_BOOT_RECORD;
#endif
// GPT Partition Entry // GPT Partition Entry
#if defined(_MSC_VER)
#pragma pack(1) #pragma pack(1)
#endif
typedef struct { typedef struct {
EFI_GUID PartitionTypeGUID; EFI_GUID PartitionTypeGUID;
EFI_GUID UniquePartitionGUID; EFI_GUID UniquePartitionGUID;
@ -249,11 +232,7 @@ typedef struct {
EFI_LBA EndingLBA; EFI_LBA EndingLBA;
UINT64 Attributes; UINT64 Attributes;
CHAR16 PartitionName[36]; CHAR16 PartitionName[36];
#if defined(_MSC_VER)
} EFI_PARTITION_ENTRY; } EFI_PARTITION_ENTRY;
#pragma pack() #pragma pack()
#else
} __attribute__((packed)) EFI_PARTITION_ENTRY;
#endif
#endif /* EFI_TYPES_H */ #endif /* EFI_TYPES_H */

View file

@ -1041,11 +1041,10 @@ typedef struct _EFI_RAM_DISK_PROTOCOL {
#define PARTITION_TYPE_MBR 0x01 #define PARTITION_TYPE_MBR 0x01
#define PARTITION_TYPE_GPT 0x02 #define PARTITION_TYPE_GPT 0x02
#if defined(_MSC_VER) typedef struct _EFI_PARTITION_INFO_PROTOCOL EFI_PARTITION_INFO_PROTOCOL;
#pragma pack(1)
#endif
typedef struct { #pragma pack(1)
typedef struct _EFI_PARTITION_INFO_PROTOCOL {
UINT32 Revision; UINT32 Revision;
UINT32 Type; UINT32 Type;
UINT8 System; UINT8 System;
@ -1054,12 +1053,8 @@ typedef struct {
MBR_PARTITION_RECORD Mbr; MBR_PARTITION_RECORD Mbr;
EFI_PARTITION_ENTRY Gpt; EFI_PARTITION_ENTRY Gpt;
} Info; } Info;
#if defined(_MSC_VER)
} EFI_PARTITION_INFO_PROTOCOL; } EFI_PARTITION_INFO_PROTOCOL;
#pragma pack() #pragma pack()
#else
} __attribute__((packed)) EFI_PARTITION_INFO_PROTOCOL;
#endif
//// ////
// NVDIMM Label Protocol // NVDIMM Label Protocol