diff options
author | Etienne Brateau <etienne.brateau@gmail.com> | 2022-01-23 05:17:06 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2022-01-23 12:03:36 +0100 |
commit | 2e2c237ab90ade751753944f0ed1830b24478396 (patch) | |
tree | 5017ab9a57832b979405adacde7cea3c4f36c9d2 /ext2fs/ext2_fs.h | |
parent | 013bd5ad3fb25deabde0dfdddb2a4619db08dafc (diff) | |
download | hurd-2e2c237ab90ade751753944f0ed1830b24478396.tar.gz hurd-2e2c237ab90ade751753944f0ed1830b24478396.tar.bz2 hurd-2e2c237ab90ade751753944f0ed1830b24478396.zip |
ext2fs: Take cares of indiannes
In ext2 data are stored in little endian to ensure portability. So
enforce little endian when manipulating these bytes.
Message-Id: <20220123041715.19402-8-etienne.brateau@gmail.com>
Diffstat (limited to 'ext2fs/ext2_fs.h')
-rw-r--r-- | ext2fs/ext2_fs.h | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/ext2fs/ext2_fs.h b/ext2fs/ext2_fs.h index f05abb04..daa49543 100644 --- a/ext2fs/ext2_fs.h +++ b/ext2fs/ext2_fs.h @@ -83,12 +83,12 @@ #define EXT2_ACLE_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_acl_entry)) #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32)) #define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10) -#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \ - EXT2_GOOD_OLD_INODE_SIZE : \ - (s)->s_inode_size) -#define EXT2_FIRST_INO(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \ - EXT2_GOOD_OLD_FIRST_INO : \ - (s)->s_first_ino) +#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == htole32(EXT2_GOOD_OLD_REV)) ? \ + EXT2_GOOD_OLD_INODE_SIZE : \ + le16toh ((s)->s_inode_size)) +#define EXT2_FIRST_INO(s) (((s)->s_rev_level == htole32(EXT2_GOOD_OLD_REV)) ? \ + EXT2_GOOD_OLD_FIRST_INO : \ + (le32toh ((s)->s_first_ino))) /* * Macro-instructions used to manage fragments @@ -96,7 +96,7 @@ #define EXT2_MIN_FRAG_SIZE 1024 #define EXT2_MAX_FRAG_SIZE 4096 #define EXT2_MIN_FRAG_LOG_SIZE 10 -#define EXT2_FRAG_SIZE(s) (EXT2_MIN_FRAG_SIZE << (s)->s_log_frag_size) +#define EXT2_FRAG_SIZE(s) (EXT2_MIN_FRAG_SIZE << le32toh((s)->s_log_frag_size)) #define EXT2_FRAGS_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_FRAG_SIZE(s)) /* @@ -139,9 +139,9 @@ struct ext2_group_desc /* * Macro-instructions used to manage group descriptors */ -#define EXT2_BLOCKS_PER_GROUP(s) ((s)->s_blocks_per_group) +#define EXT2_BLOCKS_PER_GROUP(s) (le32toh ((s)->s_blocks_per_group)) #define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group)) -#define EXT2_INODES_PER_GROUP(s) ((s)->s_inodes_per_group) +#define EXT2_INODES_PER_GROUP(s) (le32toh ((s)->s_inodes_per_group)) /* * Constants relative to the data blocks @@ -435,23 +435,23 @@ struct ext2_super_block { */ #define EXT2_HAS_COMPAT_FEATURE(sb,mask) \ - ( (sb)->s_feature_compat & (mask) ) + ( (sb)->s_feature_compat & htole32 (mask) ) #define EXT2_HAS_RO_COMPAT_FEATURE(sb,mask) \ - ( (sb)->s_feature_ro_compat & (mask) ) + ( (sb)->s_feature_ro_compat & htole32 (mask) ) #define EXT2_HAS_INCOMPAT_FEATURE(sb,mask) \ - ( (sb)->s_feature_incompat & (mask) ) + ( (sb)->s_feature_incompat & htole32 (mask) ) #define EXT2_SET_COMPAT_FEATURE(sb,mask) \ - (sb)->s_feature_compat |= (mask) + (sb)->s_feature_compat |= htole32 (mask) #define EXT2_SET_RO_COMPAT_FEATURE(sb,mask) \ - (sb)->s_feature_ro_compat |= (mask) + (sb)->s_feature_ro_compat |= htole32 (mask) #define EXT2_SET_INCOMPAT_FEATURE(sb,mask) \ - (sb)->s_feature_incompat |= (mask) + (sb)->s_feature_incompat |= htole32 (mask) #define EXT2_CLEAR_COMPAT_FEATURE(sb,mask) \ - (sb)->s_feature_compat &= ~(mask) + (sb)->s_feature_compat &= ~htole32 (mask) #define EXT2_CLEAR_RO_COMPAT_FEATURE(sb,mask) \ - (sb)->s_feature_ro_compat &= ~(mask) + (sb)->s_feature_ro_compat &= ~htole32 (mask) #define EXT2_CLEAR_INCOMPAT_FEATURE(sb,mask) \ - (sb)->s_feature_incompat &= ~(mask) + (sb)->s_feature_incompat &= ~htole32 (mask) #define EXT2_FEATURE_COMPAT_DIR_PREALLOC 0x0001 #define EXT2_FEATURE_COMPAT_IMAGIC_INODES 0x0002 |