Avoid using tricks for initialising endian variables.
* grub-core/partmap/gpt.c (grub_gpt_partition_type_bios_boot): Make const. (GRUB_MOD_INIT): Don't byte-swap. * include/grub/gpt_partition.h (GRUB_GPT_PARTITION_TYPE_BIOS_BOOT): Use grub_cpu_to_le16_compile_time and grub_cpu_to_le32_compile_time. * include/grub/types.h (grub_swap_bytes16_compile_time): New macro. (grub_swap_bytes32_compile_time): Likewise. (grub_cpu_to_le32_compile_time): Likewise. (grub_cpu_to_le16_compile_time): Likewise.
This commit is contained in:
parent
f420a80458
commit
49d3ab4668
4 changed files with 23 additions and 10 deletions
14
ChangeLog
14
ChangeLog
|
@ -1,3 +1,17 @@
|
|||
2010-11-26 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Avoid using tricks for initialising endian variables.
|
||||
|
||||
* grub-core/partmap/gpt.c (grub_gpt_partition_type_bios_boot):
|
||||
Make const.
|
||||
(GRUB_MOD_INIT): Don't byte-swap.
|
||||
* include/grub/gpt_partition.h (GRUB_GPT_PARTITION_TYPE_BIOS_BOOT):
|
||||
Use grub_cpu_to_le16_compile_time and grub_cpu_to_le32_compile_time.
|
||||
* include/grub/types.h (grub_swap_bytes16_compile_time): New macro.
|
||||
(grub_swap_bytes32_compile_time): Likewise.
|
||||
(grub_cpu_to_le32_compile_time): Likewise.
|
||||
(grub_cpu_to_le16_compile_time): Likewise.
|
||||
|
||||
2010-11-26 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* util/grub-setup.c (setup): Stop recommending --force. People who
|
||||
|
|
|
@ -33,7 +33,7 @@ static grub_uint8_t grub_gpt_magic[8] =
|
|||
static const grub_gpt_part_type_t grub_gpt_partition_type_empty = GRUB_GPT_PARTITION_TYPE_EMPTY;
|
||||
|
||||
#ifdef GRUB_UTIL
|
||||
static grub_gpt_part_type_t grub_gpt_partition_type_bios_boot = GRUB_GPT_PARTITION_TYPE_BIOS_BOOT;
|
||||
static const grub_gpt_part_type_t grub_gpt_partition_type_bios_boot = GRUB_GPT_PARTITION_TYPE_BIOS_BOOT;
|
||||
#endif
|
||||
|
||||
/* 512 << 7 = 65536 byte sectors. */
|
||||
|
@ -198,14 +198,6 @@ static struct grub_partition_map grub_gpt_partition_map =
|
|||
GRUB_MOD_INIT(part_gpt)
|
||||
{
|
||||
grub_partition_map_register (&grub_gpt_partition_map);
|
||||
#ifdef GRUB_UTIL
|
||||
grub_gpt_partition_type_bios_boot.data1 =
|
||||
grub_cpu_to_le32 (grub_gpt_partition_type_bios_boot.data1);
|
||||
grub_gpt_partition_type_bios_boot.data2 =
|
||||
grub_cpu_to_le16 (grub_gpt_partition_type_bios_boot.data2);
|
||||
grub_gpt_partition_type_bios_boot.data3 =
|
||||
grub_cpu_to_le16 (grub_gpt_partition_type_bios_boot.data3);
|
||||
#endif
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI(part_gpt)
|
||||
|
|
|
@ -36,7 +36,7 @@ typedef struct grub_gpt_part_type grub_gpt_part_type_t;
|
|||
}
|
||||
|
||||
#define GRUB_GPT_PARTITION_TYPE_BIOS_BOOT \
|
||||
{ 0x21686148, 0x6449, 0x6e6f, \
|
||||
{ grub_cpu_to_le32_compile_time (0x21686148), grub_cpu_to_le16_compile_time (0x6449), grub_cpu_to_le16_compile_time (0x6e6f), \
|
||||
{ 0x74, 0x4e, 0x65, 0x65, 0x64, 0x45, 0x46, 0x49 } \
|
||||
}
|
||||
|
||||
|
|
|
@ -146,6 +146,9 @@ typedef grub_uint64_t grub_disk_addr_t;
|
|||
(grub_uint16_t) ((_x << 8) | (_x >> 8)); \
|
||||
})
|
||||
|
||||
#define grub_swap_bytes16_compile_time(x) ((((x) & 0xff) << 8) | (((x) & 0xff00) >> 8))
|
||||
#define grub_swap_bytes32_compile_time(x) ((((x) & 0xff) << 24) | (((x) & 0xff00) << 8) | (((x) & 0xff0000) >> 8) | (((x) & 0xff000000UL) >> 24))
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ > 3) && (__GNUC__ > 4 || __GNUC_MINOR__ >= 3)
|
||||
static inline grub_uint32_t grub_swap_bytes32(grub_uint32_t x)
|
||||
{
|
||||
|
@ -193,6 +196,8 @@ static inline grub_uint64_t grub_swap_bytes64(grub_uint64_t x)
|
|||
# define grub_be_to_cpu16(x) ((grub_uint16_t) (x))
|
||||
# define grub_be_to_cpu32(x) ((grub_uint32_t) (x))
|
||||
# define grub_be_to_cpu64(x) ((grub_uint64_t) (x))
|
||||
# define grub_cpu_to_le32_compile_time(x) grub_swap_bytes32_compile_time(x)
|
||||
# define grub_cpu_to_le16_compile_time(x) grub_swap_bytes16_compile_time(x)
|
||||
#else /* ! WORDS_BIGENDIAN */
|
||||
# define grub_cpu_to_le16(x) ((grub_uint16_t) (x))
|
||||
# define grub_cpu_to_le32(x) ((grub_uint32_t) (x))
|
||||
|
@ -206,6 +211,8 @@ static inline grub_uint64_t grub_swap_bytes64(grub_uint64_t x)
|
|||
# define grub_be_to_cpu16(x) grub_swap_bytes16(x)
|
||||
# define grub_be_to_cpu32(x) grub_swap_bytes32(x)
|
||||
# define grub_be_to_cpu64(x) grub_swap_bytes64(x)
|
||||
# define grub_cpu_to_le16_compile_time(x) ((grub_uint16_t) (x))
|
||||
# define grub_cpu_to_le32_compile_time(x) ((grub_uint32_t) (x))
|
||||
#endif /* ! WORDS_BIGENDIAN */
|
||||
|
||||
#endif /* ! GRUB_TYPES_HEADER */
|
||||
|
|
Loading…
Add table
Reference in a new issue