From 7e47e27bd8772beeedafcdafd4f41e0cbbc700eb Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 15 Dec 2013 14:14:30 +0100 Subject: [PATCH] Add gcc_struct to all packed structures when compiling with mingw. Just "packed" doesn't always pack the way we expect. --- ChangeLog | 6 +++ grub-core/bus/usb/ohci.c | 6 +-- grub-core/bus/usb/serial/pl2303.c | 2 +- grub-core/bus/usb/uhci.c | 4 +- grub-core/commands/i386/pc/drivemap.c | 2 +- grub-core/commands/verify.c | 2 +- grub-core/disk/dmraid_nvidia.c | 2 +- grub-core/disk/geli.c | 6 +-- grub-core/disk/ldm.c | 4 +- grub-core/disk/luks.c | 2 +- grub-core/disk/mdraid1x_linux.c | 2 +- grub-core/disk/mdraid_linux.c | 2 +- grub-core/disk/usbms.c | 4 +- grub-core/fs/affs.c | 8 ++-- grub-core/fs/bfs.c | 16 +++---- grub-core/fs/btrfs.c | 20 ++++----- grub-core/fs/cpio.c | 2 +- grub-core/fs/cpio_be.c | 2 +- grub-core/fs/fat.c | 16 +++---- grub-core/fs/hfs.c | 14 +++--- grub-core/fs/hfsplus.c | 4 +- grub-core/fs/hfspluscomp.c | 12 ++--- grub-core/fs/iso9660.c | 16 +++---- grub-core/fs/jfs.c | 32 +++++++------- grub-core/fs/newc.c | 2 +- grub-core/fs/nilfs2.c | 2 +- grub-core/fs/ntfs.c | 2 +- grub-core/fs/odc.c | 2 +- grub-core/fs/reiserfs.c | 28 ++++++------ grub-core/fs/sfs.c | 18 ++++---- grub-core/fs/squash4.c | 22 ++++----- grub-core/fs/tar.c | 2 +- grub-core/fs/udf.c | 38 ++++++++-------- grub-core/fs/ufs.c | 6 +-- grub-core/fs/xfs.c | 22 ++++----- grub-core/fs/zfs/zfs_lz4.c | 6 +-- grub-core/io/lzopio.c | 2 +- grub-core/kern/i386/pc/mmap.c | 2 +- grub-core/loader/i386/bsd.c | 2 +- grub-core/loader/i386/linux.c | 2 +- grub-core/loader/linux.c | 2 +- grub-core/mmap/i386/pc/mmap.c | 2 +- grub-core/net/arp.c | 2 +- grub-core/net/dns.c | 2 +- grub-core/net/drivers/i386/pc/pxe.c | 10 ++--- grub-core/net/ethernet.c | 6 +-- grub-core/net/icmp.c | 4 +- grub-core/net/icmp6.c | 14 +++--- grub-core/net/ip.c | 4 +- grub-core/net/tcp.c | 6 +-- grub-core/net/tftp.c | 2 +- grub-core/partmap/acorn.c | 4 +- grub-core/partmap/amiga.c | 4 +- grub-core/partmap/dvh.c | 4 +- grub-core/partmap/sun.c | 6 +-- grub-core/partmap/sunpc.c | 4 +- grub-core/tests/video_checksum.c | 2 +- grub-core/video/readers/tga.c | 2 +- include/grub/acpi.h | 12 ++--- include/grub/bsdlabel.h | 4 +- include/grub/btrfs.h | 2 +- include/grub/cbfs_core.h | 10 ++--- include/grub/efi/api.h | 64 +++++++++++++-------------- include/grub/efi/pe32.h | 4 +- include/grub/efiemu/efiemu.h | 12 ++--- include/grub/efiemu/runtime.h | 4 +- include/grub/exfat.h | 2 +- include/grub/fat.h | 8 ++-- include/grub/gpt_partition.h | 4 +- include/grub/hfs.h | 2 +- include/grub/hfsplus.h | 16 +++---- include/grub/i386/bsd.h | 2 +- include/grub/i386/coreboot/lbio.h | 8 ++-- include/grub/i386/gdb.h | 4 +- include/grub/i386/linux.h | 6 +-- include/grub/i386/macho.h | 4 +- include/grub/i386/netbsd_bootinfo.h | 2 +- include/grub/i386/openbsd_bootarg.h | 2 +- include/grub/i386/pc/biosdisk.h | 6 +-- include/grub/i386/pc/int.h | 2 +- include/grub/i386/pc/pxe.h | 24 +++++----- include/grub/i386/pc/vbe.h | 10 ++--- include/grub/i386/xnu.h | 6 +-- include/grub/lvm.h | 10 ++--- include/grub/macho.h | 16 +++---- include/grub/msdos_partition.h | 4 +- include/grub/net.h | 2 +- include/grub/net/udp.h | 2 +- include/grub/ntfs.h | 2 +- include/grub/offsets.h | 2 +- include/grub/scsicmd.h | 30 ++++++------- include/grub/sparc64/ieee1275/boot.h | 2 +- include/grub/types.h | 18 +++++--- include/grub/unicode.h | 2 +- include/grub/usbdesc.h | 18 ++++---- include/grub/usbtrans.h | 2 +- include/grub/video.h | 2 +- include/grub/xnu.h | 6 +-- include/grub/zfs/zap_leaf.h | 2 +- include/grub/zfs/zio.h | 2 +- include/multiboot.h | 2 +- include/multiboot2.h | 2 +- util/grub-mkfont.c | 20 ++++----- util/grub-mkstandalone.c | 2 +- util/render-label.c | 2 +- 105 files changed, 403 insertions(+), 391 deletions(-) diff --git a/ChangeLog b/ChangeLog index 00f2d7fdd..f27d30482 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2013-12-15 Vladimir Serbinenko + + Add gcc_struct to all packed structures when compiling with mingw. + + Just "packed" doesn't always pack the way we expect. + 2013-12-14 Vladimir Serbinenko * include/grub/i386/coreboot/lbio.h: Add missing attribute (packed). diff --git a/grub-core/bus/usb/ohci.c b/grub-core/bus/usb/ohci.c index 3b552d7fc..946a4ed7d 100644 --- a/grub-core/bus/usb/ohci.c +++ b/grub-core/bus/usb/ohci.c @@ -47,7 +47,7 @@ struct grub_ohci_hcca grub_uint32_t donehead; grub_uint8_t reserved[116]; -} __attribute__((packed)); +} GRUB_PACKED; /* OHCI General Transfer Descriptor */ struct grub_ohci_td @@ -64,7 +64,7 @@ struct grub_ohci_td * physical address in CPU endian */ grub_uint32_t tr_index; /* index of TD in transfer */ grub_uint8_t pad[8 - sizeof (volatile struct grub_ohci_td *)]; /* padding to 32 bytes */ -} __attribute__((packed)); +} GRUB_PACKED; /* OHCI Endpoint Descriptor. */ struct grub_ohci_ed @@ -73,7 +73,7 @@ struct grub_ohci_ed grub_uint32_t td_tail; grub_uint32_t td_head; grub_uint32_t next_ed; -} __attribute__((packed)); +} GRUB_PACKED; typedef volatile struct grub_ohci_td *grub_ohci_td_t; typedef volatile struct grub_ohci_ed *grub_ohci_ed_t; diff --git a/grub-core/bus/usb/serial/pl2303.c b/grub-core/bus/usb/serial/pl2303.c index 08095622a..d1945a2cb 100644 --- a/grub-core/bus/usb/serial/pl2303.c +++ b/grub-core/bus/usb/serial/pl2303.c @@ -55,7 +55,7 @@ struct grub_pl2303_config grub_uint8_t stop_bits; grub_uint8_t parity; grub_uint8_t word_len; -} __attribute__ ((packed)); +} GRUB_PACKED; static void real_config (struct grub_serial_port *port) diff --git a/grub-core/bus/usb/uhci.c b/grub-core/bus/usb/uhci.c index 978cb3f90..a95fdfe07 100644 --- a/grub-core/bus/usb/uhci.c +++ b/grub-core/bus/usb/uhci.c @@ -105,7 +105,7 @@ struct grub_uhci_qh /* Queue heads are aligned on 16 bytes, pad so a queue head is 16 bytes so we can store many in a 4K page. */ grub_uint8_t pad[8]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* UHCI Transfer Descriptor. */ struct grub_uhci_td @@ -129,7 +129,7 @@ struct grub_uhci_td /* 3 additional 32 bits words reserved for the Host Controller Driver. */ grub_uint32_t data[3]; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef volatile struct grub_uhci_td *grub_uhci_td_t; typedef volatile struct grub_uhci_qh *grub_uhci_qh_t; diff --git a/grub-core/commands/i386/pc/drivemap.c b/grub-core/commands/i386/pc/drivemap.c index 7fbf8de87..7f7f2d41c 100644 --- a/grub-core/commands/i386/pc/drivemap.c +++ b/grub-core/commands/i386/pc/drivemap.c @@ -74,7 +74,7 @@ typedef struct drivemap_node grub_uint8_t redirto; } drivemap_node_t; -typedef struct __attribute__ ((packed)) int13map_node +typedef struct GRUB_PACKED int13map_node { grub_uint8_t disknum; grub_uint8_t mapto; diff --git a/grub-core/commands/verify.c b/grub-core/commands/verify.c index dbe7e83c0..85a72d65f 100644 --- a/grub-core/commands/verify.c +++ b/grub-core/commands/verify.c @@ -133,7 +133,7 @@ struct signature_v4_header grub_uint8_t pkeyalgo; grub_uint8_t hash; grub_uint16_t hashed_sub; -} __attribute__ ((packed)); +} GRUB_PACKED; const char *hashes[] = { [0x01] = "md5", diff --git a/grub-core/disk/dmraid_nvidia.c b/grub-core/disk/dmraid_nvidia.c index 4e7df4310..6e6405529 100644 --- a/grub-core/disk/dmraid_nvidia.c +++ b/grub-core/disk/dmraid_nvidia.c @@ -88,7 +88,7 @@ struct grub_nv_super char prodrev[NV_PRODREV_LEN]; /* 0x2C - 0x2F Array product revision */ grub_uint32_t unit_flags; /* 0x30 - 0x33 Flags for this disk */ struct grub_nv_array array; /* Array information */ -} __attribute__ ((packed)); +} GRUB_PACKED; static struct grub_diskfilter_vg * grub_dmraid_nv_detect (grub_disk_t disk, diff --git a/grub-core/disk/geli.c b/grub-core/disk/geli.c index 73b325c94..9025c9d46 100644 --- a/grub-core/disk/geli.c +++ b/grub-core/disk/geli.c @@ -95,7 +95,7 @@ struct grub_geli_key grub_uint8_t iv_key[64]; grub_uint8_t cipher_key[64]; grub_uint8_t hmac[64]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_geli_phdr { @@ -111,7 +111,7 @@ struct grub_geli_phdr grub_uint32_t niter; grub_uint8_t salt[64]; struct grub_geli_key keys[2]; -} __attribute__ ((packed)); +} GRUB_PACKED; enum { @@ -144,7 +144,7 @@ geli_rekey (struct grub_cryptodisk *dev, grub_uint64_t zoneno) const struct { char magic[4]; grub_uint64_t zone; - } __attribute__ ((packed)) tohash + } GRUB_PACKED tohash = { {'e', 'k', 'e', 'y'}, grub_cpu_to_le64 (zoneno) }; GRUB_PROPERLY_ALIGNED_ARRAY (key, GRUB_CRYPTO_MAX_MDLEN); diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c index f681eea7f..d64d0a89d 100644 --- a/grub-core/disk/ldm.c +++ b/grub-core/disk/ldm.c @@ -49,7 +49,7 @@ struct grub_ldm_vblk { grub_uint8_t type; grub_uint32_t unused2; grub_uint8_t dynamic[104]; -} __attribute__ ((packed)); +} GRUB_PACKED; #define LDM_VBLK_MAGIC "VBLK" enum @@ -83,7 +83,7 @@ struct grub_ldm_label grub_uint64_t pv_size; grub_uint64_t config_start; grub_uint64_t config_size; -} __attribute__ ((packed)); +} GRUB_PACKED; #define LDM_MAGIC "PRIVHEAD" diff --git a/grub-core/disk/luks.c b/grub-core/disk/luks.c index 46f47c2b6..250202947 100644 --- a/grub-core/disk/luks.c +++ b/grub-core/disk/luks.c @@ -56,7 +56,7 @@ struct grub_luks_phdr grub_uint32_t keyMaterialOffset; grub_uint32_t stripes; } keyblock[8]; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_luks_phdr *grub_luks_phdr_t; diff --git a/grub-core/disk/mdraid1x_linux.c b/grub-core/disk/mdraid1x_linux.c index a0e65a8cc..7cc80d3df 100644 --- a/grub-core/disk/mdraid1x_linux.c +++ b/grub-core/disk/mdraid1x_linux.c @@ -97,7 +97,7 @@ struct grub_raid_super_1x */ grub_uint16_t dev_roles[0]; /* Role in array, or 0xffff for a spare, or 0xfffe for faulty. */ }; -/* Could be __attribute__ ((packed)), but since all members in this struct +/* Could be GRUB_PACKED, but since all members in this struct are already appropriately aligned, we can omit this and avoid suboptimal assembly in some cases. */ diff --git a/grub-core/disk/mdraid_linux.c b/grub-core/disk/mdraid_linux.c index eb679f5ce..4aa588235 100644 --- a/grub-core/disk/mdraid_linux.c +++ b/grub-core/disk/mdraid_linux.c @@ -175,7 +175,7 @@ struct grub_raid_super_09 * Active descriptor */ struct grub_raid_disk_09 this_disk; -} __attribute__ ((packed)); +} GRUB_PACKED; static struct grub_diskfilter_vg * grub_mdraid_detect (grub_disk_t disk, diff --git a/grub-core/disk/usbms.c b/grub-core/disk/usbms.c index af92243d2..30756aee5 100644 --- a/grub-core/disk/usbms.c +++ b/grub-core/disk/usbms.c @@ -44,7 +44,7 @@ struct grub_usbms_cbw grub_uint8_t lun; grub_uint8_t length; grub_uint8_t cbwcb[16]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_usbms_csw { @@ -52,7 +52,7 @@ struct grub_usbms_csw grub_uint32_t tag; grub_uint32_t residue; grub_uint8_t status; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_usbms_dev { diff --git a/grub-core/fs/affs.c b/grub-core/fs/affs.c index 15f7d9dc6..f673897e0 100644 --- a/grub-core/fs/affs.c +++ b/grub-core/fs/affs.c @@ -36,7 +36,7 @@ struct grub_affs_bblock grub_uint8_t flags; grub_uint32_t checksum; grub_uint32_t rootblock; -} __attribute__ ((packed)); +} GRUB_PACKED; /* Set if the filesystem is a AFFS filesystem. Otherwise this is an OFS filesystem. */ @@ -51,14 +51,14 @@ struct grub_affs_rblock grub_uint32_t unused2; grub_uint32_t checksum; grub_uint32_t hashtable[1]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_affs_time { grub_int32_t day; grub_uint32_t min; grub_uint32_t hz; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The second part of a file header block. */ struct grub_affs_file @@ -76,7 +76,7 @@ struct grub_affs_file grub_uint32_t parent; grub_uint32_t extension; grub_uint32_t type; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The location of `struct grub_affs_file' relative to the end of a file header block. */ diff --git a/grub-core/fs/bfs.c b/grub-core/fs/bfs.c index 36b01efc8..145e77186 100644 --- a/grub-core/fs/bfs.c +++ b/grub-core/fs/bfs.c @@ -73,7 +73,7 @@ struct grub_bfs_extent grub_uint32_t ag; grub_uint16_t start; grub_uint16_t len; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_bfs_superblock { @@ -89,7 +89,7 @@ struct grub_bfs_superblock grub_uint8_t unused3[32]; grub_uint32_t magic3; struct grub_bfs_extent root_dir; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_bfs_inode { @@ -118,11 +118,11 @@ struct grub_bfs_inode grub_uint64_t max_double_indirect_range; grub_uint64_t size; grub_uint32_t pad[4]; - } __attribute__ ((packed)); + } GRUB_PACKED; char inplace_link[144]; - } __attribute__ ((packed)); + } GRUB_PACKED; grub_uint8_t small_data[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; enum { @@ -134,7 +134,7 @@ struct grub_bfs_small_data_element_header grub_uint32_t type; grub_uint16_t name_len; grub_uint16_t value_len; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_bfs_btree_header { @@ -151,7 +151,7 @@ struct grub_bfs_btree_header grub_uint64_t root; #endif grub_uint32_t unused2[2]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_bfs_btree_node { @@ -165,7 +165,7 @@ struct grub_bfs_btree_node grub_uint16_t count_keys; grub_uint16_t total_key_len; #endif -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_bfs_data { diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c index a60852756..b15a9d65d 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -53,7 +53,7 @@ struct grub_btrfs_device grub_uint64_t device_id; grub_uint64_t size; grub_uint8_t dummy[0x62 - 0x10]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_btrfs_superblock { @@ -71,7 +71,7 @@ struct grub_btrfs_superblock char label[0x100]; grub_uint8_t dummy4[0x100]; grub_uint8_t bootstrap_mapping[0x800]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct btrfs_header { @@ -80,7 +80,7 @@ struct btrfs_header grub_uint8_t dummy[0x30]; grub_uint32_t nitems; grub_uint8_t level; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_btrfs_device_desc { @@ -122,28 +122,28 @@ struct grub_btrfs_chunk_item grub_uint8_t dummy2[0xc]; grub_uint16_t nstripes; grub_uint16_t nsubstripes; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_btrfs_chunk_stripe { grub_uint64_t device_id; grub_uint64_t offset; grub_btrfs_uuid_t device_uuid; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_btrfs_leaf_node { struct grub_btrfs_key key; grub_uint32_t offset; grub_uint32_t size; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_btrfs_internal_node { struct grub_btrfs_key key; grub_uint64_t addr; grub_uint64_t dummy; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_btrfs_dir_item { @@ -156,7 +156,7 @@ struct grub_btrfs_dir_item #define GRUB_BTRFS_DIR_ITEM_TYPE_SYMLINK 7 grub_uint8_t type; char name[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_btrfs_leaf_descriptor { @@ -183,7 +183,7 @@ struct grub_btrfs_inode grub_uint64_t size; grub_uint8_t dummy2[0x70]; struct grub_btrfs_time mtime; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_btrfs_extent_data { @@ -204,7 +204,7 @@ struct grub_btrfs_extent_data grub_uint64_t filled; }; }; -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_BTRFS_EXTENT_INLINE 0 #define GRUB_BTRFS_EXTENT_REGULAR 1 diff --git a/grub-core/fs/cpio.c b/grub-core/fs/cpio.c index b14e190f9..dab5f9898 100644 --- a/grub-core/fs/cpio.c +++ b/grub-core/fs/cpio.c @@ -35,7 +35,7 @@ struct head grub_uint16_t mtime[2]; grub_uint16_t namesize[1]; grub_uint16_t filesize[2]; -} __attribute__ ((packed)); +} GRUB_PACKED; static inline unsigned long long read_number (const grub_uint16_t *arr, grub_size_t size) diff --git a/grub-core/fs/cpio_be.c b/grub-core/fs/cpio_be.c index 83df8195b..846548892 100644 --- a/grub-core/fs/cpio_be.c +++ b/grub-core/fs/cpio_be.c @@ -35,7 +35,7 @@ struct head grub_uint16_t mtime[2]; grub_uint16_t namesize[1]; grub_uint16_t filesize[2]; -} __attribute__ ((packed)); +} GRUB_PACKED; static inline unsigned long long read_number (const grub_uint16_t *arr, grub_size_t size) diff --git a/grub-core/fs/fat.c b/grub-core/fs/fat.c index e84f6c672..79fe864d7 100644 --- a/grub-core/fs/fat.c +++ b/grub-core/fs/fat.c @@ -92,7 +92,7 @@ struct grub_fat_dir_entry grub_uint8_t m_time_tenth; grub_uint8_t a_time_tenth; grub_uint8_t reserved2[9]; - } __attribute__ ((packed)) file; + } GRUB_PACKED file; struct { grub_uint8_t flags; grub_uint8_t reserved1; @@ -103,17 +103,17 @@ struct grub_fat_dir_entry grub_uint32_t reserved3; grub_uint32_t first_cluster; grub_uint64_t file_size; - } __attribute__ ((packed)) stream_extension; + } GRUB_PACKED stream_extension; struct { grub_uint8_t flags; grub_uint16_t str[15]; - } __attribute__ ((packed)) file_name; + } GRUB_PACKED file_name; struct { grub_uint8_t character_count; grub_uint16_t str[15]; - } __attribute__ ((packed)) volume_label; - } __attribute__ ((packed)) type_specific; -} __attribute__ ((packed)); + } GRUB_PACKED volume_label; + } GRUB_PACKED type_specific; +} GRUB_PACKED; struct grub_fat_dir_node { @@ -142,7 +142,7 @@ struct grub_fat_dir_entry grub_uint16_t w_date; grub_uint16_t first_cluster_low; grub_uint32_t file_size; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_fat_long_name_entry { @@ -154,7 +154,7 @@ struct grub_fat_long_name_entry grub_uint16_t name2[6]; grub_uint16_t first_cluster; grub_uint16_t name3[2]; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_fat_dir_entry grub_fat_dir_node_t; diff --git a/grub-core/fs/hfs.c b/grub-core/fs/hfs.c index 25414a5c5..ee6f6f955 100644 --- a/grub-core/fs/hfs.c +++ b/grub-core/fs/hfs.c @@ -65,7 +65,7 @@ struct grub_hfs_node grub_uint8_t level; grub_uint16_t reccnt; grub_uint16_t unused; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The head of the B*-Tree. */ struct grub_hfs_treeheader @@ -81,7 +81,7 @@ struct grub_hfs_treeheader grub_uint32_t nodes; grub_uint32_t free_nodes; grub_uint8_t unused[76]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The state of a mounted HFS filesystem. */ struct grub_hfs_data @@ -112,7 +112,7 @@ struct grub_hfs_catalog_key /* Filename. */ grub_uint8_t str[31]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The key as used on disk in a extent overflow tree. Using this key the extents can be looked up using a fileid and logical start block @@ -125,7 +125,7 @@ struct grub_hfs_extent_key grub_uint8_t forktype; grub_uint32_t fileid; grub_uint16_t first_block; -} __attribute__ ((packed)); +} GRUB_PACKED; /* A directory record. This is used to find out the directory ID. */ struct grub_hfs_dirrec @@ -136,7 +136,7 @@ struct grub_hfs_dirrec grub_uint32_t dirid; grub_uint32_t ctime; grub_uint32_t mtime; -} __attribute__ ((packed)); +} GRUB_PACKED; /* Information about a file. */ struct grub_hfs_filerec @@ -154,7 +154,7 @@ struct grub_hfs_filerec /* The first 3 extents of the file. The other extents can be found in the extent overflow file. */ grub_hfs_datarecord_t extents; -} __attribute__ ((packed)); +} GRUB_PACKED; /* A record descriptor, both key and data, used to pass to call back functions. */ @@ -712,7 +712,7 @@ grub_hfs_iterate_records (struct grub_hfs_data *data, int type, int idx, { grub_uint8_t keylen; grub_uint8_t key; - } __attribute__ ((packed)) *pnt; + } GRUB_PACKED *pnt; pnt = (struct pointer *) (grub_be_to_cpu16 (node->offsets[pos]) + node->rawnode); diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c index a119c7ace..a5d7bc8f7 100644 --- a/grub-core/fs/hfsplus.c +++ b/grub-core/fs/hfsplus.c @@ -65,7 +65,7 @@ struct grub_hfsplus_btheader grub_uint8_t btree_type; grub_uint8_t key_compare; grub_uint32_t attributes; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_hfsplus_catfile { @@ -80,7 +80,7 @@ struct grub_hfsplus_catfile grub_uint8_t unused3[44]; struct grub_hfsplus_forkdata data; struct grub_hfsplus_forkdata resource; -} __attribute__ ((packed)); +} GRUB_PACKED; /* Filetype information as used in inodes. */ #define GRUB_HFSPLUS_FILEMODE_MASK 0170000 diff --git a/grub-core/fs/hfspluscomp.c b/grub-core/fs/hfspluscomp.c index 59cb8cbc0..461b4678f 100644 --- a/grub-core/fs/hfspluscomp.c +++ b/grub-core/fs/hfspluscomp.c @@ -35,19 +35,19 @@ struct grub_hfsplus_compress_header1 grub_uint32_t total_compressed_size_including_seek_blocks_and_header2; grub_uint32_t value_0x32; grub_uint8_t unused[0xf0]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* big-endian. */ struct grub_hfsplus_compress_header2 { grub_uint32_t total_compressed_size_including_seek_blocks; -} __attribute__ ((packed)); +} GRUB_PACKED; /* little-endian. */ struct grub_hfsplus_compress_header3 { grub_uint32_t num_chunks; -} __attribute__ ((packed)); +} GRUB_PACKED; /* little-endian. */ struct grub_hfsplus_compress_block_descriptor @@ -59,7 +59,7 @@ struct grub_hfsplus_compress_block_descriptor struct grub_hfsplus_compress_end_descriptor { grub_uint8_t always_the_same[50]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_hfsplus_attr_header { @@ -67,7 +67,7 @@ struct grub_hfsplus_attr_header grub_uint8_t type; grub_uint32_t unknown[1]; grub_uint64_t size; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_hfsplus_compress_attr { @@ -75,7 +75,7 @@ struct grub_hfsplus_compress_attr grub_uint32_t type; grub_uint32_t uncompressed_inline_size; grub_uint32_t always_0; -} __attribute__ ((packed)); +} GRUB_PACKED; enum { diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c index 69e61ca02..6a6677337 100644 --- a/grub-core/fs/iso9660.c +++ b/grub-core/fs/iso9660.c @@ -54,7 +54,7 @@ struct grub_iso9660_voldesc grub_uint8_t type; grub_uint8_t magic[5]; grub_uint8_t version; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_iso9660_date2 { @@ -65,7 +65,7 @@ struct grub_iso9660_date2 grub_uint8_t minute; grub_uint8_t second; grub_uint8_t offset; -} __attribute__ ((packed)); +} GRUB_PACKED; /* A directory entry. */ struct grub_iso9660_dir @@ -81,7 +81,7 @@ struct grub_iso9660_dir grub_uint8_t unused2[6]; #define MAX_NAMELEN 255 grub_uint8_t namelen; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_iso9660_date { @@ -93,7 +93,7 @@ struct grub_iso9660_date grub_uint8_t second[2]; grub_uint8_t hundredth[2]; grub_uint8_t offset; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The primary volume descriptor. Only little endian is used. */ struct grub_iso9660_primary_voldesc @@ -112,7 +112,7 @@ struct grub_iso9660_primary_voldesc grub_uint8_t unused6[624]; struct grub_iso9660_date created; struct grub_iso9660_date modified; -} __attribute__ ((packed)); +} GRUB_PACKED; /* A single entry in the path table. */ struct grub_iso9660_path @@ -122,7 +122,7 @@ struct grub_iso9660_path grub_uint32_t first_sector; grub_uint16_t parentdir; grub_uint8_t name[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* An entry in the System Usage area of the directory entry. */ struct grub_iso9660_susp_entry @@ -131,7 +131,7 @@ struct grub_iso9660_susp_entry grub_uint8_t len; grub_uint8_t version; grub_uint8_t data[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The CE entry. This is used to describe the next block where data can be found. */ @@ -144,7 +144,7 @@ struct grub_iso9660_susp_ce grub_uint32_t off_be; grub_uint32_t len; grub_uint32_t len_be; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_iso9660_data { diff --git a/grub-core/fs/jfs.c b/grub-core/fs/jfs.c index 3251baa6e..aab3e8c7b 100644 --- a/grub-core/fs/jfs.c +++ b/grub-core/fs/jfs.c @@ -70,7 +70,7 @@ struct grub_jfs_extent /* The physical offset of the first block on the disk. */ grub_uint8_t blk1; grub_uint32_t blk2; -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_JFS_IAG_INODES_OFFSET 3072 #define GRUB_JFS_IAG_INODES_COUNT 128 @@ -79,7 +79,7 @@ struct grub_jfs_iag { grub_uint8_t unused[GRUB_JFS_IAG_INODES_OFFSET]; struct grub_jfs_extent inodes[GRUB_JFS_IAG_INODES_COUNT]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The head of the tree used to find extents. */ @@ -94,7 +94,7 @@ struct grub_jfs_treehead grub_uint16_t count; grub_uint16_t max; grub_uint8_t unused2[10]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* A node in the extent tree. */ struct grub_jfs_tree_extent @@ -107,7 +107,7 @@ struct grub_jfs_tree_extent grub_uint32_t offset2; struct grub_jfs_extent extent; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The tree of directory entries. */ struct grub_jfs_tree_dir @@ -128,7 +128,7 @@ struct grub_jfs_tree_dir /* The location of the sorted array of pointers to dirents. */ grub_uint8_t sindex; grub_uint8_t unused[10]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* An internal node in the dirents tree. */ struct grub_jfs_internal_dirent @@ -137,7 +137,7 @@ struct grub_jfs_internal_dirent grub_uint8_t next; grub_uint8_t len; grub_uint16_t namepart[11]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* A leaf node in the dirents tree. */ struct grub_jfs_leaf_dirent @@ -150,7 +150,7 @@ struct grub_jfs_leaf_dirent grub_uint8_t len; grub_uint16_t namepart[11]; grub_uint32_t index; -} __attribute__ ((packed)); +} GRUB_PACKED; /* A leaf in the dirents tree. This one is used if the previously dirent was not big enough to store the name. */ @@ -159,13 +159,13 @@ struct grub_jfs_leaf_next_dirent grub_uint8_t next; grub_uint8_t len; grub_uint16_t namepart[15]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_jfs_time { grub_int32_t sec; grub_int32_t nanosec; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_jfs_inode { @@ -185,7 +185,7 @@ struct grub_jfs_inode union { /* The tree describing the extents of the file. */ - struct __attribute__ ((packed)) + struct GRUB_PACKED { struct grub_jfs_treehead tree; struct grub_jfs_tree_extent extents[16]; @@ -206,15 +206,15 @@ struct grub_jfs_inode grub_uint8_t sorted[8]; } header; struct grub_jfs_leaf_dirent dirents[8]; - } dir __attribute__ ((packed)); + } GRUB_PACKED dir; /* Fast symlink. */ struct { grub_uint8_t unused[32]; grub_uint8_t path[256]; } symlink; - } __attribute__ ((packed)); -} __attribute__ ((packed)); + } GRUB_PACKED; +} GRUB_PACKED; struct grub_jfs_data { @@ -226,7 +226,7 @@ struct grub_jfs_data int pos; int linknest; int namecomponentlen; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_jfs_diropen { @@ -237,7 +237,7 @@ struct grub_jfs_diropen struct grub_jfs_leaf_dirent dirent[0]; struct grub_jfs_leaf_next_dirent next_dirent[0]; grub_uint8_t sorted[0]; - } *dirpage __attribute__ ((packed)); + } GRUB_PACKED *dirpage; struct grub_jfs_data *data; struct grub_jfs_inode *inode; int count; @@ -251,7 +251,7 @@ struct grub_jfs_diropen */ char name[256 * GRUB_MAX_UTF8_PER_UTF16 + 1]; grub_uint32_t ino; -} __attribute__ ((packed)); +} GRUB_PACKED; static grub_dl_t my_mod; diff --git a/grub-core/fs/newc.c b/grub-core/fs/newc.c index c7767ed3b..4fb8b2e3d 100644 --- a/grub-core/fs/newc.c +++ b/grub-core/fs/newc.c @@ -38,7 +38,7 @@ struct head char rdevminor[8]; char namesize[8]; char check[8]; -} __attribute__ ((packed)); +} GRUB_PACKED; static inline unsigned long long read_number (const char *str, grub_size_t size) diff --git a/grub-core/fs/nilfs2.c b/grub-core/fs/nilfs2.c index 1318f2140..388ee188e 100644 --- a/grub-core/fs/nilfs2.c +++ b/grub-core/fs/nilfs2.c @@ -143,7 +143,7 @@ struct grub_nilfs2_dir_entry char name[NILFS_NAME_LEN]; char pad; #endif -} __attribute__ ((packed)); +} GRUB_PACKED; enum { diff --git a/grub-core/fs/ntfs.c b/grub-core/fs/ntfs.c index 83ba5698c..d3a91f5d7 100644 --- a/grub-core/fs/ntfs.c +++ b/grub-core/fs/ntfs.c @@ -643,7 +643,7 @@ struct symlink_descriptor grub_uint16_t len1; grub_uint16_t off2; grub_uint16_t len2; -} __attribute__ ((packed)); +} GRUB_PACKED; static char * grub_ntfs_read_symlink (grub_fshelp_node_t node) diff --git a/grub-core/fs/odc.c b/grub-core/fs/odc.c index 7b8a7220e..790000622 100644 --- a/grub-core/fs/odc.c +++ b/grub-core/fs/odc.c @@ -35,7 +35,7 @@ struct head char mtime[11]; char namesize[6]; char filesize[11]; -} __attribute__ ((packed)); +} GRUB_PACKED; static inline unsigned long long read_number (const char *str, grub_size_t size) diff --git a/grub-core/fs/reiserfs.c b/grub-core/fs/reiserfs.c index 6537377ba..ac65054d3 100644 --- a/grub-core/fs/reiserfs.c +++ b/grub-core/fs/reiserfs.c @@ -109,14 +109,14 @@ struct grub_reiserfs_superblock grub_uint8_t unused[4]; grub_uint16_t uuid[8]; char label[16]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_reiserfs_journal_header { grub_uint32_t last_flush_uid; grub_uint32_t unflushed_offset; grub_uint32_t mount_id; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_reiserfs_description_block { @@ -124,14 +124,14 @@ struct grub_reiserfs_description_block grub_uint32_t len; grub_uint32_t mount_id; grub_uint32_t real_blocks[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_reiserfs_commit_block { grub_uint32_t id; grub_uint32_t len; grub_uint32_t real_blocks[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_reiserfs_stat_item_v1 { @@ -145,7 +145,7 @@ struct grub_reiserfs_stat_item_v1 grub_uint32_t ctime; grub_uint32_t rdev; grub_uint32_t first_direct_byte; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_reiserfs_stat_item_v2 { @@ -160,7 +160,7 @@ struct grub_reiserfs_stat_item_v2 grub_uint32_t ctime; grub_uint32_t blocks; grub_uint32_t first_direct_byte; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_reiserfs_key { @@ -172,13 +172,13 @@ struct grub_reiserfs_key { grub_uint32_t offset; grub_uint32_t type; - } v1 __attribute__ ((packed)); + } GRUB_PACKED v1; struct { grub_uint64_t offset_type; - } v2 __attribute__ ((packed)); + } GRUB_PACKED v2; } u; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_reiserfs_item_header { @@ -187,11 +187,11 @@ struct grub_reiserfs_item_header { grub_uint16_t free_space; grub_uint16_t entry_count; - } u __attribute__ ((packed)); + } GRUB_PACKED u; grub_uint16_t item_size; grub_uint16_t item_location; grub_uint16_t version; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_reiserfs_block_header { @@ -200,14 +200,14 @@ struct grub_reiserfs_block_header grub_uint16_t free_space; grub_uint16_t reserved; struct grub_reiserfs_key block_right_delimiting_key; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_reiserfs_disk_child { grub_uint32_t block_number; grub_uint16_t size; grub_uint16_t reserved; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_reiserfs_directory_header { @@ -216,7 +216,7 @@ struct grub_reiserfs_directory_header grub_uint32_t object_id; grub_uint16_t location; grub_uint16_t state; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_fshelp_node { diff --git a/grub-core/fs/sfs.c b/grub-core/fs/sfs.c index e7d2f72f3..6c8215048 100644 --- a/grub-core/fs/sfs.c +++ b/grub-core/fs/sfs.c @@ -35,7 +35,7 @@ struct grub_sfs_bheader grub_uint8_t magic[4]; grub_uint32_t chksum; grub_uint32_t ipointtomyself; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The sfs rootblock. */ struct grub_sfs_rblock @@ -50,7 +50,7 @@ struct grub_sfs_rblock grub_uint8_t unused3[8]; grub_uint32_t rootobject; grub_uint32_t btree; -} __attribute__ ((packed)); +} GRUB_PACKED; enum { @@ -69,18 +69,18 @@ struct grub_sfs_obj { grub_uint32_t first_block; grub_uint32_t size; - } file __attribute__ ((packed)); + } GRUB_PACKED file; struct { grub_uint32_t hashtable; grub_uint32_t dir_objc; - } dir __attribute__ ((packed)); + } GRUB_PACKED dir; } file_dir; grub_uint32_t mtime; grub_uint8_t type; grub_uint8_t filename[1]; grub_uint8_t comment[1]; -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_SFS_TYPE_DELETED 32 #define GRUB_SFS_TYPE_SYMLINK 64 @@ -95,13 +95,13 @@ struct grub_sfs_objc grub_uint32_t prev; /* The amount of objects depends on the blocksize. */ struct grub_sfs_obj objects[1]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_sfs_btree_node { grub_uint32_t key; grub_uint32_t data; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_sfs_btree_extent { @@ -109,7 +109,7 @@ struct grub_sfs_btree_extent grub_uint32_t next; grub_uint32_t prev; grub_uint16_t size; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_sfs_btree { @@ -120,7 +120,7 @@ struct grub_sfs_btree /* Normally this can be kind of node, but just extents are supported. */ struct grub_sfs_btree_node node[1]; -} __attribute__ ((packed)); +} GRUB_PACKED; diff --git a/grub-core/fs/squash4.c b/grub-core/fs/squash4.c index cb3cc3a6e..b97b34440 100644 --- a/grub-core/fs/squash4.c +++ b/grub-core/fs/squash4.c @@ -71,7 +71,7 @@ struct grub_squash_super grub_uint64_t diroffset; grub_uint64_t unk1offset; grub_uint64_t unk2offset; -} __attribute__ ((packed)); +} GRUB_PACKED; /* Chunk-based */ struct grub_squash_inode @@ -89,7 +89,7 @@ struct grub_squash_inode grub_uint32_t offset; grub_uint32_t size; grub_uint32_t block_size[0]; - } __attribute__ ((packed)) file; + } GRUB_PACKED file; struct { grub_uint64_t chunk; grub_uint64_t size; @@ -98,13 +98,13 @@ struct grub_squash_inode grub_uint32_t offset; grub_uint32_t dummy3; grub_uint32_t block_size[0]; - } __attribute__ ((packed)) long_file; + } GRUB_PACKED long_file; struct { grub_uint32_t chunk; grub_uint32_t dummy; grub_uint16_t size; grub_uint16_t offset; - } __attribute__ ((packed)) dir; + } GRUB_PACKED dir; struct { grub_uint32_t dummy1; grub_uint32_t size; @@ -112,14 +112,14 @@ struct grub_squash_inode grub_uint32_t dummy2; grub_uint16_t dummy3; grub_uint16_t offset; - } __attribute__ ((packed)) long_dir; + } GRUB_PACKED long_dir; struct { grub_uint32_t dummy; grub_uint32_t namelen; char name[0]; - } __attribute__ ((packed)) symlink; - } __attribute__ ((packed)); -} __attribute__ ((packed)); + } GRUB_PACKED symlink; + } GRUB_PACKED; +} GRUB_PACKED; struct grub_squash_cache_inode { @@ -137,7 +137,7 @@ struct grub_squash_dirent_header grub_uint32_t nelems; grub_uint32_t ino_chunk; grub_uint32_t dummy; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_squash_dirent { @@ -147,7 +147,7 @@ struct grub_squash_dirent /* Actually the value is the length of name - 1. */ grub_uint16_t namelen; char name[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; enum { @@ -164,7 +164,7 @@ struct grub_squash_frag_desc grub_uint64_t offset; grub_uint32_t size; grub_uint32_t dummy; -} __attribute__ ((packed)); +} GRUB_PACKED; enum { diff --git a/grub-core/fs/tar.c b/grub-core/fs/tar.c index 7d25791e8..39bf197aa 100644 --- a/grub-core/fs/tar.c +++ b/grub-core/fs/tar.c @@ -48,7 +48,7 @@ struct head char devmajor[8]; char devminor[8]; char prefix[155]; -} __attribute__ ((packed)); +} GRUB_PACKED; static inline unsigned long long read_number (const char *str, grub_size_t size) diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c index 60ce92830..fd412830c 100644 --- a/grub-core/fs/udf.c +++ b/grub-core/fs/udf.c @@ -117,32 +117,32 @@ struct grub_udf_lb_addr { grub_uint32_t block_num; grub_uint16_t part_ref; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_short_ad { grub_uint32_t length; grub_uint32_t position; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_long_ad { grub_uint32_t length; struct grub_udf_lb_addr block; grub_uint8_t imp_use[6]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_extent_ad { grub_uint32_t length; grub_uint32_t start; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_charspec { grub_uint8_t charset_type; grub_uint8_t charset_info[63]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_timestamp { @@ -156,14 +156,14 @@ struct grub_udf_timestamp grub_uint8_t centi_seconds; grub_uint8_t hundreds_of_micro_seconds; grub_uint8_t micro_seconds; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_regid { grub_uint8_t flags; grub_uint8_t ident[23]; grub_uint8_t ident_suffix[8]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_tag { @@ -175,7 +175,7 @@ struct grub_udf_tag grub_uint16_t desc_crc; grub_uint16_t desc_crc_length; grub_uint32_t tag_location; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_fileset { @@ -197,7 +197,7 @@ struct grub_udf_fileset struct grub_udf_regid domain_ident; struct grub_udf_long_ad next_ext; struct grub_udf_long_ad streamdir_icb; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_icbtag { @@ -209,7 +209,7 @@ struct grub_udf_icbtag grub_uint8_t file_type; struct grub_udf_lb_addr parent_idb; grub_uint16_t flags; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_file_ident { @@ -220,7 +220,7 @@ struct grub_udf_file_ident grub_uint8_t file_ident_length; struct grub_udf_long_ad icb; grub_uint16_t imp_use_length; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_file_entry { @@ -245,7 +245,7 @@ struct grub_udf_file_entry grub_uint32_t ext_attr_length; grub_uint32_t alloc_descs_length; grub_uint8_t ext_attr[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_extended_file_entry { @@ -274,20 +274,20 @@ struct grub_udf_extended_file_entry grub_uint32_t ext_attr_length; grub_uint32_t alloc_descs_length; grub_uint8_t ext_attr[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_vrs { grub_uint8_t type; grub_uint8_t magic[5]; grub_uint8_t version; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_avdp { struct grub_udf_tag tag; struct grub_udf_extent_ad vds; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_pd { @@ -300,7 +300,7 @@ struct grub_udf_pd grub_uint32_t access_type; grub_uint32_t start; grub_uint32_t length; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_partmap { @@ -319,7 +319,7 @@ struct grub_udf_partmap grub_uint8_t ident[62]; } type2; }; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_lvd { @@ -336,14 +336,14 @@ struct grub_udf_lvd grub_uint8_t imp_use[128]; struct grub_udf_extent_ad integrity_seq_ext; grub_uint8_t part_maps[1608]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_aed { struct grub_udf_tag tag; grub_uint32_t prev_ae; grub_uint32_t ae_len; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_udf_data { diff --git a/grub-core/fs/ufs.c b/grub-core/fs/ufs.c index c9c2556d1..4a2161cc7 100644 --- a/grub-core/fs/ufs.c +++ b/grub-core/fs/ufs.c @@ -187,7 +187,7 @@ struct grub_ufs_inode }; grub_uint8_t unused[24]; -} __attribute__ ((packed)); +} GRUB_PACKED; #else /* UFS inode. */ struct grub_ufs_inode @@ -217,7 +217,7 @@ struct grub_ufs_inode grub_uint32_t gen; grub_uint32_t unused; grub_uint8_t pad[12]; -} __attribute__ ((packed)); +} GRUB_PACKED; #endif /* Directory entry. */ @@ -234,7 +234,7 @@ struct grub_ufs_dirent grub_uint8_t namelen_bsd; }; }; -} __attribute__ ((packed)); +} GRUB_PACKED; /* Information about a "mounted" ufs filesystem. */ struct grub_ufs_data diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c index 7cd3e07bf..16ffd3f1e 100644 --- a/grub-core/fs/xfs.c +++ b/grub-core/fs/xfs.c @@ -54,7 +54,7 @@ struct grub_xfs_sblock grub_uint8_t log2_agblk; grub_uint8_t unused6[67]; grub_uint8_t log2_dirblk; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_xfs_dir_header { @@ -64,8 +64,8 @@ struct grub_xfs_dir_header { grub_uint32_t i4; grub_uint64_t i8; - } parent __attribute__ ((packed)); -} __attribute__ ((packed)); + } GRUB_PACKED parent; +} GRUB_PACKED; struct grub_xfs_dir_entry { @@ -73,13 +73,13 @@ struct grub_xfs_dir_entry grub_uint16_t offset; char name[1]; /* Inode number follows, 32 bits. */ -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_xfs_dir2_entry { grub_uint64_t inode; grub_uint8_t len; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef grub_uint32_t grub_xfs_extent[4]; @@ -91,20 +91,20 @@ struct grub_xfs_btree_node grub_uint64_t left; grub_uint64_t right; grub_uint64_t keys[1]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_xfs_btree_root { grub_uint16_t level; grub_uint16_t numrecs; grub_uint64_t keys[1]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_xfs_time { grub_uint32_t sec; grub_uint32_t nanosec; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_xfs_inode { @@ -133,14 +133,14 @@ struct grub_xfs_inode } dir; grub_xfs_extent extents[XFS_INODE_EXTENTS]; struct grub_xfs_btree_root btree; - } data __attribute__ ((packed)); -} __attribute__ ((packed)); + } GRUB_PACKED data; +} GRUB_PACKED; struct grub_xfs_dirblock_tail { grub_uint32_t leaf_count; grub_uint32_t leaf_stale; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_fshelp_node { diff --git a/grub-core/fs/zfs/zfs_lz4.c b/grub-core/fs/zfs/zfs_lz4.c index dde2c7195..1212a8986 100644 --- a/grub-core/fs/zfs/zfs_lz4.c +++ b/grub-core/fs/zfs/zfs_lz4.c @@ -77,13 +77,13 @@ typedef grub_size_t size_t; typedef struct _U16_S { U16 v; -} __attribute__ ((packed)) U16_S; +} GRUB_PACKED U16_S; typedef struct _U32_S { U32 v; -} __attribute__ ((packed)) U32_S; +} GRUB_PACKED U32_S; typedef struct _U64_S { U64 v; -} __attribute__ ((packed)) U64_S; +} GRUB_PACKED U64_S; #define A64(x) (((U64_S *)(x))->v) #define A32(x) (((U32_S *)(x))->v) diff --git a/grub-core/io/lzopio.c b/grub-core/io/lzopio.c index 2895e2102..b1ce26029 100644 --- a/grub-core/io/lzopio.c +++ b/grub-core/io/lzopio.c @@ -290,7 +290,7 @@ struct lzop_header grub_uint32_t mtime_lo; grub_uint32_t mtime_hi; grub_uint8_t name_len; -} __attribute__ ((packed)); +} GRUB_PACKED; static int test_header (grub_file_t file) diff --git a/grub-core/kern/i386/pc/mmap.c b/grub-core/kern/i386/pc/mmap.c index b34cbad03..8009e833c 100644 --- a/grub-core/kern/i386/pc/mmap.c +++ b/grub-core/kern/i386/pc/mmap.c @@ -33,7 +33,7 @@ struct grub_machine_mmap_entry #define GRUB_MACHINE_MEMORY_NVS 4 #define GRUB_MACHINE_MEMORY_BADRAM 5 grub_uint32_t type; -} __attribute__((packed)); +} GRUB_PACKED; /* diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c index 006632e56..ea0edfafe 100644 --- a/grub-core/loader/i386/bsd.c +++ b/grub-core/loader/i386/bsd.c @@ -276,7 +276,7 @@ struct grub_e820_mmap grub_uint64_t addr; grub_uint64_t size; grub_uint32_t type; -} __attribute__((packed)); +} GRUB_PACKED; #define GRUB_E820_RAM 1 #define GRUB_E820_RESERVED 2 #define GRUB_E820_ACPI 3 diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c index 7b63e2579..a37eecf04 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c @@ -87,7 +87,7 @@ struct idt_descriptor { grub_uint16_t limit; void *base; -} __attribute__ ((packed)); +} GRUB_PACKED; static struct idt_descriptor idt_desc = { diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c index af067a5a4..117232f0c 100644 --- a/grub-core/loader/linux.c +++ b/grub-core/loader/linux.c @@ -21,7 +21,7 @@ struct newc_head char rdevminor[8]; char namesize[8]; char check[8]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_linux_initrd_component { diff --git a/grub-core/mmap/i386/pc/mmap.c b/grub-core/mmap/i386/pc/mmap.c index 983e220be..609994516 100644 --- a/grub-core/mmap/i386/pc/mmap.c +++ b/grub-core/mmap/i386/pc/mmap.c @@ -47,7 +47,7 @@ struct grub_e820_mmap_entry grub_uint64_t addr; grub_uint64_t len; grub_uint32_t type; -} __attribute__((packed)); +} GRUB_PACKED; /* Helper for preboot. */ diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c index 81ce9c3f2..e92c7e7da 100644 --- a/grub-core/net/arp.c +++ b/grub-core/net/arp.c @@ -43,7 +43,7 @@ struct arphdr { grub_uint8_t hln; grub_uint8_t pln; grub_uint16_t op; -} __attribute__ ((packed)); +} GRUB_PACKED; static int have_pending; static grub_uint32_t pending_req; diff --git a/grub-core/net/dns.c b/grub-core/net/dns.c index 5524af936..32ee4fd3d 100644 --- a/grub-core/net/dns.c +++ b/grub-core/net/dns.c @@ -86,7 +86,7 @@ struct dns_header grub_uint16_t ancount; grub_uint16_t nscount; grub_uint16_t arcount; -} __attribute__ ((packed)); +} GRUB_PACKED; enum { diff --git a/grub-core/net/drivers/i386/pc/pxe.c b/grub-core/net/drivers/i386/pc/pxe.c index 3e75b2e13..e8c0b22e2 100644 --- a/grub-core/net/drivers/i386/pc/pxe.c +++ b/grub-core/net/drivers/i386/pc/pxe.c @@ -45,7 +45,7 @@ struct grub_pxe_undi_open grub_uint16_t pkt_filter; grub_uint16_t mcast_count; grub_uint8_t mcast[8][6]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxe_undi_info { @@ -60,7 +60,7 @@ struct grub_pxe_undi_info grub_uint32_t romaddr; grub_uint16_t rxbufct; grub_uint16_t txbufct; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxe_undi_isr @@ -73,7 +73,7 @@ struct grub_pxe_undi_isr grub_uint32_t buffer; grub_uint8_t prot_type; grub_uint8_t pkt_type; -} __attribute__ ((packed)); +} GRUB_PACKED; enum { @@ -104,7 +104,7 @@ struct grub_pxe_undi_transmit grub_uint32_t dest; grub_uint32_t tbd; grub_uint32_t reserved[2]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxe_undi_tbd { @@ -118,7 +118,7 @@ struct grub_pxe_undi_tbd grub_uint16_t len; grub_uint32_t ptr; } blocks[8]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxe_bangpxe *grub_pxe_pxenv; static grub_uint32_t pxe_rm_entry = 0; diff --git a/grub-core/net/ethernet.c b/grub-core/net/ethernet.c index b38e2c83e..c397b1b34 100644 --- a/grub-core/net/ethernet.c +++ b/grub-core/net/ethernet.c @@ -33,20 +33,20 @@ struct etherhdr grub_uint8_t dst[6]; grub_uint8_t src[6]; grub_uint16_t type; -} __attribute__ ((packed)); +} GRUB_PACKED; struct llchdr { grub_uint8_t dsap; grub_uint8_t ssap; grub_uint8_t ctrl; -} __attribute__ ((packed)); +} GRUB_PACKED; struct snaphdr { grub_uint8_t oui[3]; grub_uint16_t type; -} __attribute__ ((packed)); +} GRUB_PACKED; grub_err_t send_ethernet_packet (struct grub_net_network_level_interface *inf, diff --git a/grub-core/net/icmp.c b/grub-core/net/icmp.c index e55a0d86a..28d825ba0 100644 --- a/grub-core/net/icmp.c +++ b/grub-core/net/icmp.c @@ -25,13 +25,13 @@ struct icmp_header grub_uint8_t type; grub_uint8_t code; grub_uint16_t checksum; -} __attribute__ ((packed)); +} GRUB_PACKED; struct ping_header { grub_uint16_t id; grub_uint16_t seq; -} __attribute__ ((packed)); +} GRUB_PACKED; enum { diff --git a/grub-core/net/icmp6.c b/grub-core/net/icmp6.c index a1bd0782c..2741e6f11 100644 --- a/grub-core/net/icmp6.c +++ b/grub-core/net/icmp6.c @@ -25,13 +25,13 @@ struct icmp_header grub_uint8_t type; grub_uint8_t code; grub_uint16_t checksum; -} __attribute__ ((packed)); +} GRUB_PACKED; struct ping_header { grub_uint16_t id; grub_uint16_t seq; -} __attribute__ ((packed)); +} GRUB_PACKED; struct router_adv { @@ -41,13 +41,13 @@ struct router_adv grub_uint32_t reachable_time; grub_uint32_t retrans_timer; grub_uint8_t options[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct option_header { grub_uint8_t type; grub_uint8_t len; -} __attribute__ ((packed)); +} GRUB_PACKED; struct prefix_option { @@ -58,19 +58,19 @@ struct prefix_option grub_uint32_t preferred_lifetime; grub_uint32_t reserved; grub_uint64_t prefix[2]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct neighbour_solicit { grub_uint32_t reserved; grub_uint64_t target[2]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct neighbour_advertise { grub_uint32_t flags; grub_uint64_t target[2]; -} __attribute__ ((packed)); +} GRUB_PACKED; enum { diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c index 08f225515..c6971f9fc 100644 --- a/grub-core/net/ip.c +++ b/grub-core/net/ip.c @@ -38,7 +38,7 @@ struct iphdr { grub_uint16_t chksum; grub_uint32_t src; grub_uint32_t dest; -} __attribute__ ((packed)) ; +} GRUB_PACKED ; enum { @@ -56,7 +56,7 @@ struct ip6hdr { grub_uint8_t ttl; ip6addr src; ip6addr dest; -} __attribute__ ((packed)) ; +} GRUB_PACKED ; static int cmp (const void *a__, const void *b__) diff --git a/grub-core/net/tcp.c b/grub-core/net/tcp.c index 89bc4cc72..2077f5519 100644 --- a/grub-core/net/tcp.c +++ b/grub-core/net/tcp.c @@ -104,7 +104,7 @@ struct tcphdr grub_uint16_t window; grub_uint16_t checksum; grub_uint16_t urgent; -} __attribute__ ((packed)); +} GRUB_PACKED; struct tcp_pseudohdr { @@ -113,7 +113,7 @@ struct tcp_pseudohdr grub_uint8_t zero; grub_uint8_t proto; grub_uint16_t tcp_length; -} __attribute__ ((packed)); +} GRUB_PACKED; struct tcp6_pseudohdr { @@ -122,7 +122,7 @@ struct tcp6_pseudohdr grub_uint32_t tcp_length; grub_uint8_t zero[3]; grub_uint8_t proto; -} __attribute__ ((packed)); +} GRUB_PACKED; static struct grub_net_tcp_socket *tcp_sockets; static struct grub_net_tcp_listen *tcp_listens; diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c index 97217d23d..9c489f1fc 100644 --- a/grub-core/net/tftp.c +++ b/grub-core/net/tftp.c @@ -94,7 +94,7 @@ struct tftphdr { grub_int8_t data[TFTP_DEFAULTSIZE_PACKET+2]; } oack; } u; -} __attribute__ ((packed)) ; +} GRUB_PACKED ; typedef struct tftp_data diff --git a/grub-core/partmap/acorn.c b/grub-core/partmap/acorn.c index 4d7f5008b..7bb93d9be 100644 --- a/grub-core/partmap/acorn.c +++ b/grub-core/partmap/acorn.c @@ -43,10 +43,10 @@ struct grub_acorn_boot_block grub_uint8_t flags; grub_uint16_t start_cylinder; grub_uint8_t checksum; - } __attribute__ ((packed, aligned)); + } GRUB_PACKED; grub_uint8_t bin[0x200]; }; -} __attribute__ ((packed, aligned)); +} GRUB_PACKED; struct linux_part { diff --git a/grub-core/partmap/amiga.c b/grub-core/partmap/amiga.c index 97f71600f..13034f15c 100644 --- a/grub-core/partmap/amiga.c +++ b/grub-core/partmap/amiga.c @@ -42,7 +42,7 @@ struct grub_amiga_rdsk grub_uint32_t fslst; grub_uint32_t unused[AMIGA_CHECKSUM_WORDS - 9]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_amiga_partition { @@ -70,7 +70,7 @@ struct grub_amiga_partition grub_uint32_t firstcyl; grub_uint32_t unused[AMIGA_CHECKSUM_WORDS - 44]; -} __attribute__ ((packed)); +} GRUB_PACKED; static struct grub_partition_map grub_amiga_partition_map; diff --git a/grub-core/partmap/dvh.c b/grub-core/partmap/dvh.c index 5b464dae7..95c96186c 100644 --- a/grub-core/partmap/dvh.c +++ b/grub-core/partmap/dvh.c @@ -34,7 +34,7 @@ struct grub_dvh_partition_descriptor grub_uint32_t length; grub_uint32_t start; grub_uint32_t type; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_dvh_block { @@ -43,7 +43,7 @@ struct grub_dvh_block struct grub_dvh_partition_descriptor parts[16]; grub_uint32_t checksum; grub_uint32_t unused2; -} __attribute__ ((packed)); +} GRUB_PACKED; static struct grub_partition_map grub_dvh_partition_map; diff --git a/grub-core/partmap/sun.c b/grub-core/partmap/sun.c index cff09ae25..dae360269 100644 --- a/grub-core/partmap/sun.c +++ b/grub-core/partmap/sun.c @@ -38,13 +38,13 @@ struct grub_sun_partition_info grub_uint8_t id; grub_uint8_t spare2; grub_uint8_t flags; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_sun_partition_descriptor { grub_uint32_t start_cylinder; grub_uint32_t num_sectors; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_sun_block { @@ -65,7 +65,7 @@ struct grub_sun_block struct grub_sun_partition_descriptor partitions[8]; grub_uint16_t magic; /* Magic number. */ grub_uint16_t csum; /* Label xor'd checksum. */ -} __attribute__ ((packed)); +} GRUB_PACKED; static struct grub_partition_map grub_sun_partition_map; diff --git a/grub-core/partmap/sunpc.c b/grub-core/partmap/sunpc.c index 7034272c7..442763ee5 100644 --- a/grub-core/partmap/sunpc.c +++ b/grub-core/partmap/sunpc.c @@ -38,7 +38,7 @@ struct grub_sun_pc_partition_descriptor grub_uint16_t unused; grub_uint32_t start_sector; grub_uint32_t num_sectors; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_sun_pc_block { @@ -47,7 +47,7 @@ struct grub_sun_pc_block grub_uint8_t unused2[244]; grub_uint16_t magic; /* Magic number. */ grub_uint16_t csum; /* Label xor'd checksum. */ -} __attribute__ ((packed)); +} GRUB_PACKED; static struct grub_partition_map grub_sun_pc_partition_map; diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c index f8927555f..491bc5573 100644 --- a/grub-core/tests/video_checksum.c +++ b/grub-core/tests/video_checksum.c @@ -264,7 +264,7 @@ struct bmp_header grub_uint16_t height; grub_uint16_t planes; grub_uint16_t bpp; -} __attribute__ ((packed)); +} GRUB_PACKED; static void grub_video_capture_write_bmp (const char *fname, diff --git a/grub-core/video/readers/tga.c b/grub-core/video/readers/tga.c index 6295a5d2a..c7a16fa9c 100644 --- a/grub-core/video/readers/tga.c +++ b/grub-core/video/readers/tga.c @@ -75,7 +75,7 @@ struct grub_tga_header grub_uint16_t image_height; grub_uint8_t image_bpp; grub_uint8_t image_descriptor; -} __attribute__ ((packed)); +} GRUB_PACKED; struct tga_data { diff --git a/include/grub/acpi.h b/include/grub/acpi.h index 32bb95ca8..2ac2bd6fd 100644 --- a/include/grub/acpi.h +++ b/include/grub/acpi.h @@ -34,7 +34,7 @@ struct grub_acpi_rsdp_v10 grub_uint8_t oemid[6]; grub_uint8_t revision; grub_uint32_t rsdt_addr; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_acpi_rsdp_v20 { @@ -43,7 +43,7 @@ struct grub_acpi_rsdp_v20 grub_uint64_t xsdt_addr; grub_uint8_t checksum; grub_uint8_t reserved[3]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_acpi_table_header { @@ -56,7 +56,7 @@ struct grub_acpi_table_header grub_uint32_t oemrev; grub_uint8_t creator_id[4]; grub_uint32_t creator_rev; -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_ACPI_FADT_SIGNATURE "FACP" @@ -71,7 +71,7 @@ struct grub_acpi_fadt grub_uint64_t facs_xaddr; grub_uint64_t dsdt_xaddr; grub_uint8_t somefields3[96]; -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_ACPI_MADT_SIGNATURE "APIC" @@ -124,7 +124,7 @@ struct grub_acpi_madt_entry_interrupt_override grub_uint8_t source; grub_uint32_t global_sys_interrupt; grub_uint16_t flags; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_acpi_madt_entry_lapic_nmi @@ -133,7 +133,7 @@ struct grub_acpi_madt_entry_lapic_nmi grub_uint8_t acpiid; grub_uint16_t flags; grub_uint8_t lint; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_acpi_madt_entry_sapic { diff --git a/include/grub/bsdlabel.h b/include/grub/bsdlabel.h index 8f241dfd8..83e7b8b5a 100644 --- a/include/grub/bsdlabel.h +++ b/include/grub/bsdlabel.h @@ -86,7 +86,7 @@ struct grub_partition_bsd_entry grub_uint8_t fs_type; grub_uint8_t fs_fragments; grub_uint16_t fs_cylinders; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The BSD disk label. Only define members useful for GRUB. */ struct grub_partition_bsd_disk_label @@ -101,6 +101,6 @@ struct grub_partition_bsd_disk_label grub_uint16_t num_partitions; grub_uint32_t boot_size; grub_uint32_t superblock_size; -} __attribute__ ((packed)); +} GRUB_PACKED; #endif /* ! GRUB_PC_PARTITION_HEADER */ diff --git a/include/grub/btrfs.h b/include/grub/btrfs.h index 77531d105..9d93fb6c1 100644 --- a/include/grub/btrfs.h +++ b/include/grub/btrfs.h @@ -50,7 +50,7 @@ struct grub_btrfs_key grub_uint64_t object_id; grub_uint8_t type; grub_uint64_t offset; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_btrfs_root_backref diff --git a/include/grub/cbfs_core.h b/include/grub/cbfs_core.h index 5067b6ef7..98112fb67 100644 --- a/include/grub/cbfs_core.h +++ b/include/grub/cbfs_core.h @@ -98,7 +98,7 @@ struct cbfs_header { grub_uint32_t offset; grub_uint32_t architecture; grub_uint32_t pad[1]; -} __attribute__((packed)); +} GRUB_PACKED; /* "Unknown" refers to CBFS headers version 1, * before the architecture was defined (i.e., x86 only). @@ -130,7 +130,7 @@ struct cbfs_file { grub_uint32_t type; grub_uint32_t checksum; grub_uint32_t offset; -} __attribute__((packed)); +} GRUB_PACKED; /*** Component sub-headers ***/ @@ -146,7 +146,7 @@ struct cbfs_stage { grub_uint64_t load; /** Where to load in memory */ grub_uint32_t len; /** length of data to load */ grub_uint32_t memlen; /** total length of object in memory */ -} __attribute__((packed)); +} GRUB_PACKED; /** this is the sub-header for payload components. Payloads are loaded by coreboot at the end of the boot process */ @@ -158,7 +158,7 @@ struct cbfs_payload_segment { grub_uint64_t load_addr; grub_uint32_t len; grub_uint32_t mem_len; -} __attribute__((packed)); +} GRUB_PACKED; struct cbfs_payload { struct cbfs_payload_segment segments; @@ -173,6 +173,6 @@ struct cbfs_payload { struct cbfs_optionrom { grub_uint32_t compression; grub_uint32_t len; -} __attribute__((packed)); +} GRUB_PACKED; #endif diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h index 7b46259f7..68fc90ffb 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h @@ -532,7 +532,7 @@ struct grub_efi_packed_guid grub_uint16_t data2; grub_uint16_t data3; grub_uint8_t data4[8]; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_packed_guid grub_efi_packed_guid_t; /* XXX although the spec does not specify the padding, this actually @@ -545,7 +545,7 @@ struct grub_efi_memory_descriptor grub_efi_virtual_address_t virtual_start; grub_efi_uint64_t num_pages; grub_efi_uint64_t attribute; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_memory_descriptor grub_efi_memory_descriptor_t; /* Device Path definitions. */ @@ -554,7 +554,7 @@ struct grub_efi_device_path grub_efi_uint8_t type; grub_efi_uint8_t subtype; grub_efi_uint16_t length; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_device_path grub_efi_device_path_t; /* XXX EFI does not define EFI_DEVICE_PATH_PROTOCOL but uses it. It seems to be identical to EFI_DEVICE_PATH. */ @@ -589,7 +589,7 @@ struct grub_efi_pci_device_path grub_efi_device_path_t header; grub_efi_uint8_t function; grub_efi_uint8_t device; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_pci_device_path grub_efi_pci_device_path_t; #define GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE 2 @@ -598,7 +598,7 @@ struct grub_efi_pccard_device_path { grub_efi_device_path_t header; grub_efi_uint8_t function; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_pccard_device_path grub_efi_pccard_device_path_t; #define GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE 3 @@ -609,7 +609,7 @@ struct grub_efi_memory_mapped_device_path grub_efi_uint32_t memory_type; grub_efi_physical_address_t start_address; grub_efi_physical_address_t end_address; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_memory_mapped_device_path grub_efi_memory_mapped_device_path_t; #define GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE 4 @@ -619,7 +619,7 @@ struct grub_efi_vendor_device_path grub_efi_device_path_t header; grub_efi_packed_guid_t vendor_guid; grub_efi_uint8_t vendor_defined_data[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_vendor_device_path grub_efi_vendor_device_path_t; #define GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE 5 @@ -628,7 +628,7 @@ struct grub_efi_controller_device_path { grub_efi_device_path_t header; grub_efi_uint32_t controller_number; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_controller_device_path grub_efi_controller_device_path_t; /* ACPI Device Path. */ @@ -641,7 +641,7 @@ struct grub_efi_acpi_device_path grub_efi_device_path_t header; grub_efi_uint32_t hid; grub_efi_uint32_t uid; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_acpi_device_path grub_efi_acpi_device_path_t; #define GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE 2 @@ -653,7 +653,7 @@ struct grub_efi_expanded_acpi_device_path grub_efi_uint32_t uid; grub_efi_uint32_t cid; char hidstr[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_expanded_acpi_device_path grub_efi_expanded_acpi_device_path_t; #define GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp) \ @@ -676,7 +676,7 @@ struct grub_efi_atapi_device_path grub_efi_uint8_t primary_secondary; grub_efi_uint8_t slave_master; grub_efi_uint16_t lun; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_atapi_device_path grub_efi_atapi_device_path_t; #define GRUB_EFI_SCSI_DEVICE_PATH_SUBTYPE 2 @@ -686,7 +686,7 @@ struct grub_efi_scsi_device_path grub_efi_device_path_t header; grub_efi_uint16_t pun; grub_efi_uint16_t lun; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_scsi_device_path grub_efi_scsi_device_path_t; #define GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE 3 @@ -697,7 +697,7 @@ struct grub_efi_fibre_channel_device_path grub_efi_uint32_t reserved; grub_efi_uint64_t wwn; grub_efi_uint64_t lun; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_fibre_channel_device_path grub_efi_fibre_channel_device_path_t; #define GRUB_EFI_1394_DEVICE_PATH_SUBTYPE 4 @@ -707,7 +707,7 @@ struct grub_efi_1394_device_path grub_efi_device_path_t header; grub_efi_uint32_t reserved; grub_efi_uint64_t guid; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_1394_device_path grub_efi_1394_device_path_t; #define GRUB_EFI_USB_DEVICE_PATH_SUBTYPE 5 @@ -717,7 +717,7 @@ struct grub_efi_usb_device_path grub_efi_device_path_t header; grub_efi_uint8_t parent_port_number; grub_efi_uint8_t usb_interface; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_usb_device_path grub_efi_usb_device_path_t; #define GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE 15 @@ -730,7 +730,7 @@ struct grub_efi_usb_class_device_path grub_efi_uint8_t device_class; grub_efi_uint8_t device_subclass; grub_efi_uint8_t device_protocol; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_usb_class_device_path grub_efi_usb_class_device_path_t; #define GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE 6 @@ -739,7 +739,7 @@ struct grub_efi_i2o_device_path { grub_efi_device_path_t header; grub_efi_uint32_t tid; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_i2o_device_path grub_efi_i2o_device_path_t; #define GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE 11 @@ -749,7 +749,7 @@ struct grub_efi_mac_address_device_path grub_efi_device_path_t header; grub_efi_mac_address_t mac_address; grub_efi_uint8_t if_type; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_mac_address_device_path grub_efi_mac_address_device_path_t; #define GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE 12 @@ -763,7 +763,7 @@ struct grub_efi_ipv4_device_path grub_efi_uint16_t remote_port; grub_efi_uint16_t protocol; grub_efi_uint8_t static_ip_address; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_ipv4_device_path grub_efi_ipv4_device_path_t; #define GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE 13 @@ -777,7 +777,7 @@ struct grub_efi_ipv6_device_path grub_efi_uint16_t remote_port; grub_efi_uint16_t protocol; grub_efi_uint8_t static_ip_address; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_ipv6_device_path grub_efi_ipv6_device_path_t; #define GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE 9 @@ -790,7 +790,7 @@ struct grub_efi_infiniband_device_path grub_efi_uint64_t remote_id; grub_efi_uint64_t target_port_id; grub_efi_uint64_t device_id; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_infiniband_device_path grub_efi_infiniband_device_path_t; #define GRUB_EFI_UART_DEVICE_PATH_SUBTYPE 14 @@ -803,7 +803,7 @@ struct grub_efi_uart_device_path grub_efi_uint8_t data_bits; grub_efi_uint8_t parity; grub_efi_uint8_t stop_bits; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_uart_device_path grub_efi_uart_device_path_t; #define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE 10 @@ -813,7 +813,7 @@ struct grub_efi_vendor_messaging_device_path grub_efi_device_path_t header; grub_efi_packed_guid_t vendor_guid; grub_efi_uint8_t vendor_defined_data[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_vendor_messaging_device_path grub_efi_vendor_messaging_device_path_t; /* Media Device Path. */ @@ -830,7 +830,7 @@ struct grub_efi_hard_drive_device_path grub_efi_uint8_t partition_signature[16]; grub_efi_uint8_t partmap_type; grub_efi_uint8_t signature_type; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_hard_drive_device_path grub_efi_hard_drive_device_path_t; #define GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE 2 @@ -841,7 +841,7 @@ struct grub_efi_cdrom_device_path grub_efi_uint32_t boot_entry; grub_efi_lba_t partition_start; grub_efi_lba_t partition_size; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_cdrom_device_path grub_efi_cdrom_device_path_t; #define GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE 3 @@ -851,7 +851,7 @@ struct grub_efi_vendor_media_device_path grub_efi_device_path_t header; grub_efi_packed_guid_t vendor_guid; grub_efi_uint8_t vendor_defined_data[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_vendor_media_device_path grub_efi_vendor_media_device_path_t; #define GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE 4 @@ -860,7 +860,7 @@ struct grub_efi_file_path_device_path { grub_efi_device_path_t header; grub_efi_char16_t path_name[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_file_path_device_path grub_efi_file_path_device_path_t; #define GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE 5 @@ -869,7 +869,7 @@ struct grub_efi_protocol_device_path { grub_efi_device_path_t header; grub_efi_packed_guid_t guid; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_protocol_device_path grub_efi_protocol_device_path_t; #define GRUB_EFI_PIWG_DEVICE_PATH_SUBTYPE 6 @@ -878,7 +878,7 @@ struct grub_efi_piwg_device_path { grub_efi_device_path_t header; grub_efi_packed_guid_t guid; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_piwg_device_path grub_efi_piwg_device_path_t; @@ -893,7 +893,7 @@ struct grub_efi_bios_device_path grub_efi_uint16_t device_type; grub_efi_uint16_t status_flags; char description[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_bios_device_path grub_efi_bios_device_path_t; struct grub_efi_open_protocol_information_entry @@ -918,7 +918,7 @@ struct grub_efi_time grub_efi_int16_t time_zone; grub_efi_uint8_t daylight; grub_efi_uint8_t pad2; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_time grub_efi_time_t; struct grub_efi_time_capabilities @@ -1236,7 +1236,7 @@ struct grub_efi_configuration_table { grub_efi_packed_guid_t vendor_guid; void *vendor_table; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_configuration_table grub_efi_configuration_table_t; #define GRUB_EFIEMU_SYSTEM_TABLE_SIGNATURE 0x5453595320494249LL diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h index 4adea603b..f79c36c02 100644 --- a/include/grub/efi/pe32.h +++ b/include/grub/efi/pe32.h @@ -299,7 +299,7 @@ struct grub_pe32_symbol grub_uint16_t type; grub_uint8_t storage_class; grub_uint8_t num_aux; -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_PE32_SYM_CLASS_EXTERNAL 2 #define GRUB_PE32_SYM_CLASS_STATIC 3 @@ -312,7 +312,7 @@ struct grub_pe32_reloc grub_uint32_t offset; grub_uint32_t symtab_index; grub_uint16_t type; -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_PE32_REL_I386_DIR32 0x6 #define GRUB_PE32_REL_I386_REL32 0x14 diff --git a/include/grub/efiemu/efiemu.h b/include/grub/efiemu/efiemu.h index 5c87662a4..5325e5839 100644 --- a/include/grub/efiemu/efiemu.h +++ b/include/grub/efiemu/efiemu.h @@ -41,7 +41,7 @@ struct grub_efi_system_table32 grub_efi_uint32_t boot_services; grub_efi_uint32_t num_table_entries; grub_efi_uint32_t configuration_table; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_system_table32 grub_efi_system_table32_t; struct grub_efi_system_table64 @@ -60,7 +60,7 @@ struct grub_efi_system_table64 grub_efi_uint64_t boot_services; grub_efi_uint64_t num_table_entries; grub_efi_uint64_t configuration_table; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efi_system_table64 grub_efi_system_table64_t; struct grub_efiemu_runtime_services32 @@ -77,7 +77,7 @@ struct grub_efiemu_runtime_services32 grub_efi_uint32_t set_variable; grub_efi_uint32_t get_next_high_monotonic_count; grub_efi_uint32_t reset_system; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efiemu_runtime_services32 grub_efiemu_runtime_services32_t; struct grub_efiemu_runtime_services64 @@ -94,7 +94,7 @@ struct grub_efiemu_runtime_services64 grub_efi_uint64_t set_variable; grub_efi_uint64_t get_next_high_monotonic_count; grub_efi_uint64_t reset_system; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efiemu_runtime_services64 grub_efiemu_runtime_services64_t; extern grub_efi_system_table32_t *grub_efiemu_system_table32; @@ -185,13 +185,13 @@ struct grub_efiemu_configuration_table32 { grub_efi_packed_guid_t vendor_guid; grub_efi_uint32_t vendor_table; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efiemu_configuration_table32 grub_efiemu_configuration_table32_t; struct grub_efiemu_configuration_table64 { grub_efi_packed_guid_t vendor_guid; grub_efi_uint64_t vendor_table; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_efiemu_configuration_table64 grub_efiemu_configuration_table64_t; grub_err_t grub_efiemu_unregister_configuration_table (grub_efi_guid_t guid); grub_err_t diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h index 1eb474a5d..9b6b729f4 100644 --- a/include/grub/efiemu/runtime.h +++ b/include/grub/efiemu/runtime.h @@ -25,7 +25,7 @@ struct grub_efiemu_ptv_rel grub_efi_memory_type_t plustype; grub_efi_memory_type_t minustype; grub_uint32_t size; -} __attribute__ ((packed)); +} GRUB_PACKED; struct efi_variable { @@ -33,5 +33,5 @@ struct efi_variable grub_uint32_t namelen; grub_uint32_t size; grub_efi_uint32_t attributes; -} __attribute__ ((packed)); +} GRUB_PACKED; #endif /* ! GRUB_EFI_EMU_RUNTIME_HEADER */ diff --git a/include/grub/exfat.h b/include/grub/exfat.h index e5cb82d79..2b8009cee 100644 --- a/include/grub/exfat.h +++ b/include/grub/exfat.h @@ -41,7 +41,7 @@ struct grub_exfat_bpb grub_uint8_t num_fats; grub_uint8_t num_ph_drive; grub_uint8_t reserved[8]; -} __attribute__ ((packed)); +} GRUB_PACKED; #ifdef GRUB_UTIL #include diff --git a/include/grub/fat.h b/include/grub/fat.h index ae352c6d6..4a5aab793 100644 --- a/include/grub/fat.h +++ b/include/grub/fat.h @@ -52,7 +52,7 @@ struct grub_fat_bpb grub_uint32_t num_serial; grub_uint8_t label[11]; grub_uint8_t fstype[8]; - } __attribute__ ((packed)) fat12_or_fat16; + } GRUB_PACKED fat12_or_fat16; struct { grub_uint32_t sectors_per_fat_32; @@ -68,9 +68,9 @@ struct grub_fat_bpb grub_uint32_t num_serial; grub_uint8_t label[11]; grub_uint8_t fstype[8]; - } __attribute__ ((packed)) fat32; - } __attribute__ ((packed)) version_specific; -} __attribute__ ((packed)); + } GRUB_PACKED fat32; + } GRUB_PACKED version_specific; +} GRUB_PACKED; #ifdef GRUB_UTIL #include diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h index 4aaf1c4e7..1b32f6725 100644 --- a/include/grub/gpt_partition.h +++ b/include/grub/gpt_partition.h @@ -66,7 +66,7 @@ struct grub_gpt_header grub_uint32_t maxpart; grub_uint32_t partentry_size; grub_uint32_t partentry_crc32; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_gpt_partentry { @@ -76,7 +76,7 @@ struct grub_gpt_partentry grub_uint64_t end; grub_uint64_t attrib; char name[72]; -} __attribute__ ((packed)); +} GRUB_PACKED; grub_err_t grub_gpt_partition_map_iterate (grub_disk_t disk, diff --git a/include/grub/hfs.h b/include/grub/hfs.h index bf98610d9..bb8ec0517 100644 --- a/include/grub/hfs.h +++ b/include/grub/hfs.h @@ -58,6 +58,6 @@ struct grub_hfs_sblock grub_hfs_datarecord_t extent_recs; grub_uint32_t catalog_size; grub_hfs_datarecord_t catalog_recs; -} __attribute__ ((packed)); +} GRUB_PACKED; #endif /* ! GRUB_HFS_HEADER */ diff --git a/include/grub/hfsplus.h b/include/grub/hfsplus.h index 842554e04..fedf37d3d 100644 --- a/include/grub/hfsplus.h +++ b/include/grub/hfsplus.h @@ -9,7 +9,7 @@ struct grub_hfsplus_extent grub_uint32_t start; /* The amount of blocks described by this extent. */ grub_uint32_t count; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The descriptor of a fork. */ struct grub_hfsplus_forkdata @@ -18,7 +18,7 @@ struct grub_hfsplus_forkdata grub_uint32_t clumpsize; grub_uint32_t blocks; struct grub_hfsplus_extent extents[8]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The HFS+ Volume Header. */ struct grub_hfsplus_volheader @@ -37,7 +37,7 @@ struct grub_hfsplus_volheader struct grub_hfsplus_forkdata catalog_file; struct grub_hfsplus_forkdata attr_file; struct grub_hfsplus_forkdata startup_file; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_hfsplus_compress_index { @@ -116,7 +116,7 @@ struct grub_hfsplus_attrkey grub_uint16_t unknown2[2]; grub_uint16_t namelen; grub_uint16_t name[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_hfsplus_attrkey_internal { @@ -142,7 +142,7 @@ struct grub_hfsplus_catkey grub_uint32_t parent; grub_uint16_t namelen; grub_uint16_t name[30]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The on disk layout of an extent overflow file key. */ struct grub_hfsplus_extkey @@ -152,7 +152,7 @@ struct grub_hfsplus_extkey grub_uint8_t unused; grub_uint32_t fileid; grub_uint32_t start; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_hfsplus_key { @@ -163,7 +163,7 @@ struct grub_hfsplus_key struct grub_hfsplus_attrkey attrkey; grub_uint16_t keylen; }; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_hfsplus_btnode { @@ -173,7 +173,7 @@ struct grub_hfsplus_btnode grub_uint8_t height; grub_uint16_t count; grub_uint16_t unused; -} __attribute__ ((packed)); +} GRUB_PACKED; /* Return the offset of the record with the index INDEX, in the node NODE which is part of the B+ tree BTREE. */ diff --git a/include/grub/i386/bsd.h b/include/grub/i386/bsd.h index 665248d03..524d47a1f 100644 --- a/include/grub/i386/bsd.h +++ b/include/grub/i386/bsd.h @@ -64,7 +64,7 @@ struct grub_freebsd_bootinfo grub_uint32_t kern_end; grub_uint32_t environment; grub_uint32_t tags; -} __attribute__ ((packed)); +} GRUB_PACKED; struct freebsd_tag_header { diff --git a/include/grub/i386/coreboot/lbio.h b/include/grub/i386/coreboot/lbio.h index dc9cead0c..1c3fa6f19 100644 --- a/include/grub/i386/coreboot/lbio.h +++ b/include/grub/i386/coreboot/lbio.h @@ -35,7 +35,7 @@ struct grub_linuxbios_timestamp_entry { grub_uint32_t id; grub_uint64_t tsc; -} __attribute__((packed)); +} GRUB_PACKED; struct grub_linuxbios_timestamp_table { @@ -43,7 +43,7 @@ struct grub_linuxbios_timestamp_table grub_uint32_t capacity; grub_uint32_t used; struct grub_linuxbios_timestamp_entry entries[0]; -} __attribute__((packed)); +} GRUB_PACKED; struct grub_linuxbios_mainboard { @@ -86,7 +86,7 @@ struct grub_linuxbios_table_framebuffer { grub_uint8_t blue_mask_size; grub_uint8_t reserved_field_pos; grub_uint8_t reserved_mask_size; -} __attribute__((packed)); +} GRUB_PACKED; struct grub_linuxbios_mem_region { @@ -94,7 +94,7 @@ struct grub_linuxbios_mem_region grub_uint64_t size; #define GRUB_MACHINE_MEMORY_AVAILABLE 1 grub_uint32_t type; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_linuxbios_mem_region *mem_region_t; grub_err_t diff --git a/include/grub/i386/gdb.h b/include/grub/i386/gdb.h index 070bb82da..92d2dacda 100644 --- a/include/grub/i386/gdb.h +++ b/include/grub/i386/gdb.h @@ -60,13 +60,13 @@ struct grub_cpu_interrupt_gate grub_uint8_t unused; grub_uint8_t gate; grub_uint16_t offset_hi; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_cpu_idt_descriptor { grub_uint16_t limit; grub_uint32_t base; -} __attribute__ ((packed)); +} GRUB_PACKED; extern void (*grub_gdb_trapvec[]) (void); void grub_gdb_idtinit (void); diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h index 9d064c852..da0ca3b83 100644 --- a/include/grub/i386/linux.h +++ b/include/grub/i386/linux.h @@ -74,7 +74,7 @@ struct grub_e820_mmap grub_uint64_t addr; grub_uint64_t size; grub_uint32_t type; -} __attribute__((packed)); +} GRUB_PACKED; enum { @@ -139,7 +139,7 @@ struct linux_kernel_header grub_uint64_t setup_data; grub_uint64_t pref_address; grub_uint32_t init_size; -} __attribute__ ((packed)); +} GRUB_PACKED; /* Boot parameters for Linux based on 2.6.12. This is used by the setup sectors of Linux, and must be simulated by GRUB on EFI, because @@ -309,7 +309,7 @@ struct linux_kernel_params grub_uint8_t pad2[120]; /* 258 */ struct grub_e820_mmap e820_map[(0x400 - 0x2d0) / 20]; /* 2d0 */ -} __attribute__ ((packed)); +} GRUB_PACKED; #endif /* ! ASM_FILE */ #endif /* ! GRUB_LINUX_MACHINE_HEADER */ diff --git a/include/grub/i386/macho.h b/include/grub/i386/macho.h index 437fa038f..5bdf9b213 100644 --- a/include/grub/i386/macho.h +++ b/include/grub/i386/macho.h @@ -36,7 +36,7 @@ struct grub_macho_thread32 grub_uint8_t unknown1[48]; grub_uint32_t entry_point; grub_uint8_t unknown2[20]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_macho_thread64 @@ -46,6 +46,6 @@ struct grub_macho_thread64 grub_uint8_t unknown1[0x88]; grub_uint64_t entry_point; grub_uint8_t unknown2[0x20]; -} __attribute__ ((packed)); +} GRUB_PACKED; #endif diff --git a/include/grub/i386/netbsd_bootinfo.h b/include/grub/i386/netbsd_bootinfo.h index 24e145b01..e48c19b40 100644 --- a/include/grub/i386/netbsd_bootinfo.h +++ b/include/grub/i386/netbsd_bootinfo.h @@ -92,7 +92,7 @@ struct grub_netbsd_btinfo_bootwedge { grub_disk_addr_t matchblk; grub_uint64_t matchnblks; grub_uint8_t matchhash[16]; /* MD5 hash */ -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_netbsd_btinfo_symtab { diff --git a/include/grub/i386/openbsd_bootarg.h b/include/grub/i386/openbsd_bootarg.h index 75bb9fb88..01ca4868b 100644 --- a/include/grub/i386/openbsd_bootarg.h +++ b/include/grub/i386/openbsd_bootarg.h @@ -69,7 +69,7 @@ struct grub_openbsd_bootargs grub_uint32_t ba_type; grub_uint32_t ba_size; grub_uint32_t ba_next; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_openbsd_bootarg_console { diff --git a/include/grub/i386/pc/biosdisk.h b/include/grub/i386/pc/biosdisk.h index 71748cebd..3d8071684 100644 --- a/include/grub/i386/pc/biosdisk.h +++ b/include/grub/i386/pc/biosdisk.h @@ -77,7 +77,7 @@ struct grub_biosdisk_drp writes a garbage to the tail of drive parameters, regardless of a size specified in a caller. */ grub_uint8_t dummy[16]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_biosdisk_cdrp { @@ -94,7 +94,7 @@ struct grub_biosdisk_cdrp grub_uint8_t sectors; grub_uint8_t heads; grub_uint8_t dummy[16]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* Disk Address Packet. */ struct grub_biosdisk_dap @@ -104,6 +104,6 @@ struct grub_biosdisk_dap grub_uint16_t blocks; grub_uint32_t buffer; grub_uint64_t block; -} __attribute__ ((packed)); +} GRUB_PACKED; #endif /* ! GRUB_BIOSDISK_MACHINE_HEADER */ diff --git a/include/grub/i386/pc/int.h b/include/grub/i386/pc/int.h index fae2e877c..16a53e4fe 100644 --- a/include/grub/i386/pc/int.h +++ b/include/grub/i386/pc/int.h @@ -58,7 +58,7 @@ struct grub_i386_idt { grub_uint16_t limit; grub_uint32_t base; -} __attribute__ ((packed)); +} GRUB_PACKED; #ifdef GRUB_MACHINE_PCBIOS extern struct grub_i386_idt *EXPORT_VAR(grub_realidt); diff --git a/include/grub/i386/pc/pxe.h b/include/grub/i386/pc/pxe.h index 7794379ee..66002bcd2 100644 --- a/include/grub/i386/pc/pxe.h +++ b/include/grub/i386/pc/pxe.h @@ -185,7 +185,7 @@ struct grub_pxenv grub_uint16_t undi_code_seg; /* UNDI Code segment address. */ grub_uint16_t undi_code_size; /* UNDI Code segment size (bytes). */ grub_uint32_t pxe_ptr; /* SEG:OFF to !PXE struct. */ -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxe_bangpxe { @@ -198,7 +198,7 @@ struct grub_pxe_bangpxe grub_uint32_t undiromid; grub_uint32_t baseromid; grub_uint32_t rm_entry; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxenv_get_cached_info { @@ -207,7 +207,7 @@ struct grub_pxenv_get_cached_info grub_uint16_t buffer_size; grub_uint32_t buffer; grub_uint16_t buffer_limit; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxenv_tftp_open { @@ -217,12 +217,12 @@ struct grub_pxenv_tftp_open grub_uint8_t filename[128]; grub_uint16_t tftp_port; grub_uint16_t packet_size; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxenv_tftp_close { grub_uint16_t status; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxenv_tftp_read { @@ -230,7 +230,7 @@ struct grub_pxenv_tftp_read grub_uint16_t packet_number; grub_uint16_t buffer_size; grub_uint32_t buffer; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxenv_tftp_get_fsize { @@ -239,18 +239,18 @@ struct grub_pxenv_tftp_get_fsize grub_uint32_t gateway_ip; grub_uint8_t filename[128]; grub_uint32_t file_size; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxenv_udp_open { grub_uint16_t status; grub_uint32_t src_ip; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxenv_udp_close { grub_uint16_t status; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxenv_udp_write { @@ -261,7 +261,7 @@ struct grub_pxenv_udp_write grub_uint16_t dst_port; grub_uint16_t buffer_size; grub_uint32_t buffer; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxenv_udp_read { @@ -272,13 +272,13 @@ struct grub_pxenv_udp_read grub_uint16_t dst_port; grub_uint16_t buffer_size; grub_uint32_t buffer; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_pxenv_unload_stack { grub_uint16_t status; grub_uint8_t reserved[10]; -} __attribute__ ((packed)); +} GRUB_PACKED; int EXPORT_FUNC(grub_pxe_call) (int func, void * data, grub_uint32_t pxe_rm_entry) __attribute__ ((regparm(3))); diff --git a/include/grub/i386/pc/vbe.h b/include/grub/i386/pc/vbe.h index 570bb0fa6..f349b5c2b 100644 --- a/include/grub/i386/pc/vbe.h +++ b/include/grub/i386/pc/vbe.h @@ -84,7 +84,7 @@ struct grub_vbe_info_block grub_uint8_t reserved[222]; grub_uint8_t oem_data[256]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_vbe_mode_info_block { @@ -147,7 +147,7 @@ struct grub_vbe_mode_info_block that doesn't make structure to be 256 bytes. So additional one is added here. */ grub_uint8_t reserved4[189 + 1]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_vbe_crtc_info_block { @@ -161,7 +161,7 @@ struct grub_vbe_crtc_info_block grub_uint32_t pixel_clock; grub_uint16_t refresh_rate; grub_uint8_t reserved[40]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_vbe_palette_data { @@ -169,7 +169,7 @@ struct grub_vbe_palette_data grub_uint8_t green; grub_uint8_t red; grub_uint8_t alignment; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_vbe_flat_panel_info { @@ -184,7 +184,7 @@ struct grub_vbe_flat_panel_info grub_vbe_farptr_t reserved_offscreen_mem_ptr; grub_uint8_t reserved[14]; -} __attribute__ ((packed)); +} GRUB_PACKED; /* Prototypes for helper functions. */ /* Call VESA BIOS 0x4f00 to get VBE Controller Information, return status. */ diff --git a/include/grub/i386/xnu.h b/include/grub/i386/xnu.h index 12b1e60bc..a076b8a97 100644 --- a/include/grub/i386/xnu.h +++ b/include/grub/i386/xnu.h @@ -61,7 +61,7 @@ struct grub_xnu_boot_params_common grub_uint32_t efi_runtime_first_page; /* First memory page containing runtime code or data minus previous value. */ grub_uint32_t efi_runtime_npages; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_xnu_boot_params_v1 { @@ -72,7 +72,7 @@ struct grub_xnu_boot_params_v1 grub_uint32_t efi_system_table; /* Size of grub_efi_uintn_t in bits. */ grub_uint8_t efi_uintnbits; -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_XNU_BOOTARGSV1_VERMINOR 5 #define GRUB_XNU_BOOTARGSV1_VERMAJOR 1 @@ -92,7 +92,7 @@ struct grub_xnu_boot_params_v2 grub_uint32_t unused2[11]; grub_uint64_t fsbfreq; grub_uint32_t unused3[734]; -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_XNU_BOOTARGSV2_VERMINOR 0 #define GRUB_XNU_BOOTARGSV2_VERMAJOR 2 diff --git a/include/grub/lvm.h b/include/grub/lvm.h index 2d4ab6ff3..30a609c20 100644 --- a/include/grub/lvm.h +++ b/include/grub/lvm.h @@ -41,13 +41,13 @@ struct grub_lvm_label_header { grub_uint32_t crc_xl; /* From next field to end of sector */ grub_uint32_t offset_xl; /* Offset from start of struct to contents */ grub_int8_t type[8]; /* LVM2 001 */ -} __attribute__ ((packed)); +} GRUB_PACKED; /* On disk */ struct grub_lvm_disk_locn { grub_uint64_t offset; /* Offset in bytes to start sector */ grub_uint64_t size; /* Bytes */ -} __attribute__ ((packed)); +} GRUB_PACKED; /* Fields with the suffix _xl should be xlate'd wherever they appear */ /* On disk */ @@ -60,7 +60,7 @@ struct grub_lvm_pv_header { /* NULL-terminated list of data areas followed by */ /* NULL-terminated list of metadata area headers */ struct grub_lvm_disk_locn disk_areas_xl[0]; /* Two lists */ -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_LVM_FMTT_MAGIC "\040\114\126\115\062\040\170\133\065\101\045\162\060\116\052\076" #define GRUB_LVM_FMTT_VERSION 1 @@ -72,7 +72,7 @@ struct grub_lvm_raw_locn { grub_uint64_t size; /* Bytes */ grub_uint32_t checksum; grub_uint32_t filler; -} __attribute__ ((packed)); +} GRUB_PACKED; /* On disk */ /* Structure size limited to one sector */ @@ -84,7 +84,7 @@ struct grub_lvm_mda_header { grub_uint64_t size; /* Size of metadata area */ struct grub_lvm_raw_locn raw_locns[0]; /* NULL-terminated list */ -} __attribute__ ((packed)); +} GRUB_PACKED; #endif /* ! GRUB_LVM_H */ diff --git a/include/grub/macho.h b/include/grub/macho.h index 2bfc30f1a..3c88e71ca 100644 --- a/include/grub/macho.h +++ b/include/grub/macho.h @@ -25,7 +25,7 @@ struct grub_macho_fat_header { grub_uint32_t magic; grub_uint32_t nfat_arch; -} __attribute__ ((packed)); +} GRUB_PACKED; enum { @@ -47,7 +47,7 @@ struct grub_macho_fat_arch grub_uint32_t offset; grub_uint32_t size; grub_uint32_t align; -} __attribute__ ((packed)); +} GRUB_PACKED; /* File header for 32-bit. Always in native-endian. */ struct grub_macho_header32 @@ -60,7 +60,7 @@ struct grub_macho_header32 grub_uint32_t ncmds; grub_uint32_t sizeofcmds; grub_uint32_t flags; -} __attribute__ ((packed)); +} GRUB_PACKED; /* File header for 64-bit. Always in native-endian. */ struct grub_macho_header64 @@ -74,14 +74,14 @@ struct grub_macho_header64 grub_uint32_t sizeofcmds; grub_uint32_t flags; grub_uint32_t reserved; -} __attribute__ ((packed)); +} GRUB_PACKED; /* Common header of Mach-O commands. */ struct grub_macho_cmd { grub_uint32_t cmd; grub_uint32_t cmdsize; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef grub_uint32_t grub_macho_vmprot_t; @@ -100,7 +100,7 @@ struct grub_macho_segment32 grub_macho_vmprot_t initprot; grub_uint32_t nsects; grub_uint32_t flags; -} __attribute__ ((packed)); +} GRUB_PACKED; /* 64-bit segment command. */ struct grub_macho_segment64 @@ -117,7 +117,7 @@ struct grub_macho_segment64 grub_macho_vmprot_t initprot; grub_uint32_t nsects; grub_uint32_t flags; -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_MACHO_CMD_THREAD 5 @@ -137,7 +137,7 @@ union grub_macho_filestart struct grub_macho_header32 thin32; struct grub_macho_header64 thin64; struct grub_macho_lzss_header lzss; -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_MACHO_LZSS_OFFSET 0x180 diff --git a/include/grub/msdos_partition.h b/include/grub/msdos_partition.h index 92f853982..fdc2904d3 100644 --- a/include/grub/msdos_partition.h +++ b/include/grub/msdos_partition.h @@ -88,7 +88,7 @@ struct grub_msdos_partition_entry /* The length in sector units. */ grub_uint32_t length; -} __attribute__ ((packed)); +} GRUB_PACKED; /* The structure of MBR. */ struct grub_msdos_partition_mbr @@ -101,7 +101,7 @@ struct grub_msdos_partition_mbr /* The signature 0xaa55. */ grub_uint16_t signature; -} __attribute__ ((packed)); +} GRUB_PACKED; diff --git a/include/grub/net.h b/include/grub/net.h index 788516a2d..de6259ee1 100644 --- a/include/grub/net.h +++ b/include/grub/net.h @@ -416,7 +416,7 @@ struct grub_net_bootp_packet char server_name[64]; char boot_file[128]; grub_uint8_t vendor[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; #define GRUB_NET_BOOTP_RFC1048_MAGIC_0 0x63 #define GRUB_NET_BOOTP_RFC1048_MAGIC_1 0x82 diff --git a/include/grub/net/udp.h b/include/grub/net/udp.h index 1a7efa777..17f38cfa0 100644 --- a/include/grub/net/udp.h +++ b/include/grub/net/udp.h @@ -27,7 +27,7 @@ struct udphdr grub_uint16_t dst; grub_uint16_t len; grub_uint16_t chksum; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_net_udp_socket; typedef struct grub_net_udp_socket *grub_net_udp_socket_t; diff --git a/include/grub/ntfs.h b/include/grub/ntfs.h index af3f4b05d..d1a6af696 100644 --- a/include/grub/ntfs.h +++ b/include/grub/ntfs.h @@ -125,7 +125,7 @@ struct grub_ntfs_bpb grub_int8_t reserved_6[3]; grub_uint64_t num_serial; grub_uint32_t checksum; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_ntfs_attr { diff --git a/include/grub/offsets.h b/include/grub/offsets.h index a666e898b..85e7401ae 100644 --- a/include/grub/offsets.h +++ b/include/grub/offsets.h @@ -153,7 +153,7 @@ struct grub_pc_bios_boot_blocklist grub_uint64_t start; grub_uint16_t len; grub_uint16_t segment; -} __attribute__ ((packed)); +} GRUB_PACKED; #endif #endif diff --git a/include/grub/scsicmd.h b/include/grub/scsicmd.h index a3e79888a..3f1e6d28c 100644 --- a/include/grub/scsicmd.h +++ b/include/grub/scsicmd.h @@ -34,7 +34,7 @@ struct grub_scsi_test_unit_ready grub_uint8_t reserved3; grub_uint8_t control; grub_uint8_t pad[6]; /* To be ATAPI compatible */ -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_inquiry { @@ -45,7 +45,7 @@ struct grub_scsi_inquiry grub_uint8_t alloc_length; grub_uint8_t control; grub_uint8_t pad[6]; /* To be ATAPI compatible */ -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_inquiry_data { @@ -57,7 +57,7 @@ struct grub_scsi_inquiry_data char vendor[8]; char prodid[16]; char prodrev[4]; -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_request_sense { @@ -68,7 +68,7 @@ struct grub_scsi_request_sense grub_uint8_t alloc_length; grub_uint8_t control; grub_uint8_t pad[6]; /* To be ATAPI compatible */ -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_request_sense_data { @@ -83,7 +83,7 @@ struct grub_scsi_request_sense_data grub_uint8_t field_replaceable_unit_code; grub_uint8_t sense_key_specific[3]; /* there can be additional sense field */ -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_read_capacity10 { @@ -95,13 +95,13 @@ struct grub_scsi_read_capacity10 grub_uint8_t PMI; grub_uint8_t control; grub_uint16_t pad; /* To be ATAPI compatible */ -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_read_capacity10_data { grub_uint32_t last_block; grub_uint32_t blocksize; -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_read_capacity16 { @@ -111,14 +111,14 @@ struct grub_scsi_read_capacity16 grub_uint32_t alloc_len; grub_uint8_t PMI; grub_uint8_t control; -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_read_capacity16_data { grub_uint64_t last_block; grub_uint32_t blocksize; grub_uint8_t pad[20]; -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_read10 { @@ -129,7 +129,7 @@ struct grub_scsi_read10 grub_uint16_t size; grub_uint8_t reserved2; grub_uint16_t pad; -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_read12 { @@ -139,7 +139,7 @@ struct grub_scsi_read12 grub_uint32_t size; grub_uint8_t reserved; grub_uint8_t control; -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_read16 { @@ -149,7 +149,7 @@ struct grub_scsi_read16 grub_uint32_t size; grub_uint8_t reserved; grub_uint8_t control; -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_write10 { @@ -160,7 +160,7 @@ struct grub_scsi_write10 grub_uint16_t size; grub_uint8_t reserved2; grub_uint16_t pad; -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_write12 { @@ -170,7 +170,7 @@ struct grub_scsi_write12 grub_uint32_t size; grub_uint8_t reserved; grub_uint8_t control; -} __attribute__((packed)); +} GRUB_PACKED; struct grub_scsi_write16 { @@ -180,7 +180,7 @@ struct grub_scsi_write16 grub_uint32_t size; grub_uint8_t reserved; grub_uint8_t control; -} __attribute__((packed)); +} GRUB_PACKED; typedef enum { diff --git a/include/grub/sparc64/ieee1275/boot.h b/include/grub/sparc64/ieee1275/boot.h index a54e47566..02d53f28e 100644 --- a/include/grub/sparc64/ieee1275/boot.h +++ b/include/grub/sparc64/ieee1275/boot.h @@ -57,7 +57,7 @@ struct grub_boot_blocklist { grub_uint64_t start; grub_uint32_t len; -} __attribute__ ((packed)); +} GRUB_PACKED; #endif #endif /* ! BOOT_MACHINE_HEADER */ diff --git a/include/grub/types.h b/include/grub/types.h index e8c2f68f9..79f765c62 100644 --- a/include/grub/types.h +++ b/include/grub/types.h @@ -24,6 +24,12 @@ #include #endif +#ifdef __MINGW32__ +#define GRUB_PACKED __attribute__ ((packed,gcc_struct)) +#else +#define GRUB_PACKED __attribute__ ((packed)) +#endif + #ifdef GRUB_BUILD # define GRUB_CPU_SIZEOF_VOID_P BUILD_SIZEOF_VOID_P # define GRUB_CPU_SIZEOF_LONG BUILD_SIZEOF_LONG @@ -253,7 +259,7 @@ static inline grub_uint16_t grub_get_unaligned16 (const void *ptr) struct grub_unaligned_uint16_t { grub_uint16_t d; - } __attribute__ ((packed)); + } GRUB_PACKED; const struct grub_unaligned_uint16_t *dd = (const struct grub_unaligned_uint16_t *) ptr; return dd->d; @@ -264,7 +270,7 @@ static inline void grub_set_unaligned16 (void *ptr, grub_uint16_t val) struct grub_unaligned_uint16_t { grub_uint16_t d; - } __attribute__ ((packed)); + } GRUB_PACKED; struct grub_unaligned_uint16_t *dd = (struct grub_unaligned_uint16_t *) ptr; dd->d = val; } @@ -274,7 +280,7 @@ static inline grub_uint32_t grub_get_unaligned32 (const void *ptr) struct grub_unaligned_uint32_t { grub_uint32_t d; - } __attribute__ ((packed)); + } GRUB_PACKED; const struct grub_unaligned_uint32_t *dd = (const struct grub_unaligned_uint32_t *) ptr; return dd->d; @@ -285,7 +291,7 @@ static inline void grub_set_unaligned32 (void *ptr, grub_uint32_t val) struct grub_unaligned_uint32_t { grub_uint32_t d; - } __attribute__ ((packed)); + } GRUB_PACKED; struct grub_unaligned_uint32_t *dd = (struct grub_unaligned_uint32_t *) ptr; dd->d = val; } @@ -293,7 +299,7 @@ static inline void grub_set_unaligned32 (void *ptr, grub_uint32_t val) struct grub_unaligned_uint64 { grub_uint64_t val; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef struct grub_unaligned_uint64 grub_unaligned_uint64_t; @@ -309,7 +315,7 @@ static inline void grub_set_unaligned64 (void *ptr, grub_uint64_t val) struct grub_unaligned_uint64_t { grub_uint64_t d; - } __attribute__ ((packed)); + } GRUB_PACKED; struct grub_unaligned_uint64_t *dd = (struct grub_unaligned_uint64_t *) ptr; dd->d = val; } diff --git a/include/grub/unicode.h b/include/grub/unicode.h index 17b6ca684..a0403e91f 100644 --- a/include/grub/unicode.h +++ b/include/grub/unicode.h @@ -37,7 +37,7 @@ struct grub_unicode_compact_range unsigned comb_type:8; unsigned bidi_mirror:1; unsigned join_type:3; -} __attribute__ ((packed)); +} GRUB_PACKED; /* Old-style Arabic shaping. Used for "visual UTF-8" and in grub-mkfont to find variant glyphs in absence of GPOS tables. */ diff --git a/include/grub/usbdesc.h b/include/grub/usbdesc.h index 7d1415248..aac5ab05a 100644 --- a/include/grub/usbdesc.h +++ b/include/grub/usbdesc.h @@ -36,7 +36,7 @@ struct grub_usb_desc { grub_uint8_t length; grub_uint8_t type; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_usb_desc_device { @@ -54,7 +54,7 @@ struct grub_usb_desc_device grub_uint8_t strprod; grub_uint8_t strserial; grub_uint8_t configcnt; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_usb_desc_config { @@ -66,7 +66,7 @@ struct grub_usb_desc_config grub_uint8_t strconfig; grub_uint8_t attrib; grub_uint8_t maxpower; -} __attribute__ ((packed)); +} GRUB_PACKED; #if 0 struct grub_usb_desc_if_association @@ -79,7 +79,7 @@ struct grub_usb_desc_if_association grub_uint8_t subclass; grub_uint8_t protocol; grub_uint8_t function; -} __attribute__ ((packed)); +} GRUB_PACKED; #endif struct grub_usb_desc_if @@ -93,7 +93,7 @@ struct grub_usb_desc_if grub_uint8_t subclass; grub_uint8_t protocol; grub_uint8_t strif; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_usb_desc_endp { @@ -103,14 +103,14 @@ struct grub_usb_desc_endp grub_uint8_t attrib; grub_uint16_t maxpacket; grub_uint8_t interval; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_usb_desc_str { grub_uint8_t length; grub_uint8_t type; grub_uint16_t str[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_usb_desc_debug { @@ -118,7 +118,7 @@ struct grub_usb_desc_debug grub_uint8_t type; grub_uint8_t in_endp; grub_uint8_t out_endp; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_usb_usb_hubdesc { @@ -129,6 +129,6 @@ struct grub_usb_usb_hubdesc grub_uint8_t pwdgood; grub_uint8_t current; /* Removable and power control bits follow. */ -} __attribute__ ((packed)); +} GRUB_PACKED; #endif /* GRUB_USBDESC_H */ diff --git a/include/grub/usbtrans.h b/include/grub/usbtrans.h index 5429007d0..aef482cb9 100644 --- a/include/grub/usbtrans.h +++ b/include/grub/usbtrans.h @@ -149,7 +149,7 @@ struct grub_usb_packet_setup grub_uint16_t value; grub_uint16_t index; grub_uint16_t length; -} __attribute__((packed)); +} GRUB_PACKED; #endif /* GRUB_USBTRANS_H */ diff --git a/include/grub/video.h b/include/grub/video.h index 601261e15..bca677789 100644 --- a/include/grub/video.h +++ b/include/grub/video.h @@ -273,7 +273,7 @@ struct grub_video_edid_info grub_uint8_t extension_flag; grub_uint8_t checksum; -} __attribute__ ((packed)); +} GRUB_PACKED; typedef enum grub_video_driver_id { diff --git a/include/grub/xnu.h b/include/grub/xnu.h index 9b17717a9..b7a7f450c 100644 --- a/include/grub/xnu.h +++ b/include/grub/xnu.h @@ -46,7 +46,7 @@ struct grub_xnu_hibernate_header Used only to skip it. */ grub_uint32_t extmapsize; -} __attribute__ ((packed)); +} GRUB_PACKED; /* In-memory structure for temporary keeping device tree. */ struct grub_xnu_devtree_key @@ -67,7 +67,7 @@ grub_xnu_extdesc { grub_uint32_t addr; grub_uint32_t size; -} __attribute__ ((packed)); +} GRUB_PACKED; /* Header describing extension in the memory. */ struct grub_xnu_extheader @@ -78,7 +78,7 @@ struct grub_xnu_extheader grub_uint32_t binarysize; grub_uint32_t nameaddr; grub_uint32_t namesize; -} __attribute__ ((packed)); +} GRUB_PACKED; struct grub_xnu_devtree_key *grub_xnu_create_key (struct grub_xnu_devtree_key **parent, const char *name); diff --git a/include/grub/zfs/zap_leaf.h b/include/grub/zfs/zap_leaf.h index f2b7cb1da..95c67dcba 100644 --- a/include/grub/zfs/zap_leaf.h +++ b/include/grub/zfs/zap_leaf.h @@ -91,7 +91,7 @@ typedef union zap_leaf_chunk { { grub_uint8_t la_array[ZAP_LEAF_ARRAY_BYTES]; grub_uint64_t la_array64; - } __attribute__ ((packed)); + } GRUB_PACKED; grub_uint16_t la_next; /* next blk or CHAIN_END */ } l_array; struct zap_leaf_free { diff --git a/include/grub/zfs/zio.h b/include/grub/zfs/zio.h index 8fad2cc09..19ce136bb 100644 --- a/include/grub/zfs/zio.h +++ b/include/grub/zfs/zio.h @@ -30,7 +30,7 @@ typedef struct zio_eck { grub_uint64_t zec_magic; /* for validation, endianness */ zio_cksum_t zec_cksum; /* 256-bit checksum */ -} __attribute__ ((packed)) zio_eck_t; +} GRUB_PACKED zio_eck_t; /* * Gang block headers are self-checksumming and contain an array diff --git a/include/multiboot.h b/include/multiboot.h index bd133ba1f..7e5ac69ba 100644 --- a/include/multiboot.h +++ b/include/multiboot.h @@ -238,7 +238,7 @@ struct multiboot_mmap_entry #define MULTIBOOT_MEMORY_NVS 4 #define MULTIBOOT_MEMORY_BADRAM 5 multiboot_uint32_t type; -} __attribute__((packed)); +} GRUB_PACKED; typedef struct multiboot_mmap_entry multiboot_memory_map_t; struct multiboot_mod_list diff --git a/include/multiboot2.h b/include/multiboot2.h index 2e33cbf8d..3ccff15fc 100644 --- a/include/multiboot2.h +++ b/include/multiboot2.h @@ -179,7 +179,7 @@ struct multiboot_mmap_entry #define MULTIBOOT_MEMORY_BADRAM 5 multiboot_uint32_t type; multiboot_uint32_t zero; -} __attribute__((packed)); +} GRUB_PACKED; typedef struct multiboot_mmap_entry multiboot_memory_map_t; struct multiboot_tag diff --git a/util/grub-mkfont.c b/util/grub-mkfont.c index d3a8af05c..3cb02ad5c 100644 --- a/util/grub-mkfont.c +++ b/util/grub-mkfont.c @@ -374,7 +374,7 @@ struct gsub_header grub_uint16_t scripts_off; grub_uint16_t features_off; grub_uint16_t lookups_off; -} __attribute__ ((packed)); +} GRUB_PACKED; struct gsub_features { @@ -389,21 +389,21 @@ struct gsub_features #define FEATURE_RLIG 0x726c6967 grub_uint32_t feature_tag; grub_uint16_t offset; - } __attribute__ ((packed)) features[0]; -} __attribute__ ((packed)); + } GRUB_PACKED features[0]; +} GRUB_PACKED; struct gsub_feature { grub_uint16_t params; grub_uint16_t lookupcount; grub_uint16_t lookupindices[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct gsub_lookup_list { grub_uint16_t count; grub_uint16_t offsets[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct gsub_lookup { @@ -411,7 +411,7 @@ struct gsub_lookup grub_uint16_t flag; grub_uint16_t subtablecount; grub_uint16_t subtables[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct gsub_substitution { @@ -426,14 +426,14 @@ struct gsub_substitution grub_uint16_t repl[0]; }; }; -} __attribute__ ((packed)); +} GRUB_PACKED; struct gsub_coverage_list { grub_uint16_t type; grub_uint16_t count; grub_uint16_t glyphs[0]; -} __attribute__ ((packed)); +} GRUB_PACKED; struct gsub_coverage_ranges { @@ -444,8 +444,8 @@ struct gsub_coverage_ranges grub_uint16_t start; grub_uint16_t end; grub_uint16_t start_index; - } __attribute__ ((packed)) ranges[0]; -} __attribute__ ((packed)); + } GRUB_PACKED ranges[0]; +} GRUB_PACKED; #define GSUB_SINGLE_SUBSTITUTION 1 diff --git a/util/grub-mkstandalone.c b/util/grub-mkstandalone.c index 6ee5e588a..4b0464cc2 100644 --- a/util/grub-mkstandalone.c +++ b/util/grub-mkstandalone.c @@ -132,7 +132,7 @@ struct head char devminor[8]; char prefix[155]; char pad[12]; -} __attribute__ ((packed)); +} GRUB_PACKED; static void write_zeros (unsigned rsz) diff --git a/util/render-label.c b/util/render-label.c index 6bef638da..73f877442 100644 --- a/util/render-label.c +++ b/util/render-label.c @@ -41,7 +41,7 @@ struct header grub_uint8_t magic; grub_uint16_t width; grub_uint16_t height; -} __attribute__ ((packed)); +} GRUB_PACKED; static struct grub_video_palette_data ieee1275_palette[256];