From: Vladimir Serbinenko Date: Fri, 12 Feb 2016 08:11:06 +0000 (+0100) Subject: Make unaligned types public. X-Git-Tag: 2.02-beta3~52 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8ad190cac258f2070a94f1250c0fb91eca6f7685;p=thirdparty%2Fgrub.git Make unaligned types public. This simplifies code which has to handle those types. --- diff --git a/include/grub/types.h b/include/grub/types.h index e732efb5c..b93e48201 100644 --- a/include/grub/types.h +++ b/include/grub/types.h @@ -254,55 +254,49 @@ static inline grub_uint64_t grub_swap_bytes64(grub_uint64_t _x) #endif /* ! WORDS_BIGENDIAN */ +struct grub_unaligned_uint16 +{ + grub_uint16_t val; +} GRUB_PACKED; +struct grub_unaligned_uint32 +{ + grub_uint32_t val; +} GRUB_PACKED; +struct grub_unaligned_uint64 +{ + grub_uint64_t val; +} GRUB_PACKED; + +typedef struct grub_unaligned_uint16 grub_unaligned_uint16_t; +typedef struct grub_unaligned_uint32 grub_unaligned_uint32_t; +typedef struct grub_unaligned_uint64 grub_unaligned_uint64_t; + static inline grub_uint16_t grub_get_unaligned16 (const void *ptr) { - struct grub_unaligned_uint16_t - { - grub_uint16_t d; - } GRUB_PACKED; - const struct grub_unaligned_uint16_t *dd - = (const struct grub_unaligned_uint16_t *) ptr; - return dd->d; + const struct grub_unaligned_uint16 *dd + = (const struct grub_unaligned_uint16 *) ptr; + return dd->val; } static inline void grub_set_unaligned16 (void *ptr, grub_uint16_t val) { - struct grub_unaligned_uint16_t - { - grub_uint16_t d; - } GRUB_PACKED; - struct grub_unaligned_uint16_t *dd = (struct grub_unaligned_uint16_t *) ptr; - dd->d = val; + struct grub_unaligned_uint16 *dd = (struct grub_unaligned_uint16 *) ptr; + dd->val = val; } static inline grub_uint32_t grub_get_unaligned32 (const void *ptr) { - struct grub_unaligned_uint32_t - { - grub_uint32_t d; - } GRUB_PACKED; - const struct grub_unaligned_uint32_t *dd - = (const struct grub_unaligned_uint32_t *) ptr; - return dd->d; + const struct grub_unaligned_uint32 *dd + = (const struct grub_unaligned_uint32 *) ptr; + return dd->val; } static inline void grub_set_unaligned32 (void *ptr, grub_uint32_t val) { - struct grub_unaligned_uint32_t - { - grub_uint32_t d; - } GRUB_PACKED; - struct grub_unaligned_uint32_t *dd = (struct grub_unaligned_uint32_t *) ptr; - dd->d = val; + struct grub_unaligned_uint32 *dd = (struct grub_unaligned_uint32 *) ptr; + dd->val = val; } -struct grub_unaligned_uint64 -{ - grub_uint64_t val; -} GRUB_PACKED; - -typedef struct grub_unaligned_uint64 grub_unaligned_uint64_t; - static inline grub_uint64_t grub_get_unaligned64 (const void *ptr) { const struct grub_unaligned_uint64 *dd