From: Geert U. <Gee...@so...> - 2008-08-29 13:23:39
|
From: Geert Uytterhoeven <Gee...@so...> Various cleanups: - Use suffix `LL' - Use defines instead of hardcoded numbers for shifts in the SQUASHFS_MKFL macro - Use explicitly sized integers for integral types in structs Signed-off-by: Geert Uytterhoeven <Gee...@so...> --- include/linux/squashfs_fs.h | 162 ++++++++++++++++++++++---------------------- 1 file changed, 83 insertions(+), 79 deletions(-) --- a/include/linux/squashfs_fs.h +++ b/include/linux/squashfs_fs.h @@ -1,6 +1,8 @@ #ifndef SQUASHFS_FS #define SQUASHFS_FS +#include <linux/types.h> + /* * Squashfs * @@ -48,10 +50,10 @@ /* Max length of filename (not 255) */ #define SQUASHFS_NAME_LEN 256 -#define SQUASHFS_INVALID ((long long) 0xffffffffffff) -#define SQUASHFS_INVALID_FRAG ((unsigned int) 0xffffffff) -#define SQUASHFS_INVALID_BLK ((long long) -1) -#define SQUASHFS_USED_BLK ((long long) -2) +#define SQUASHFS_INVALID (0xffffffffffffLL) +#define SQUASHFS_INVALID_FRAG (0xffffffffU) +#define SQUASHFS_INVALID_BLK (-1LL) +#define SQUASHFS_USED_BLK (-2LL) /* Filesystem flags */ #define SQUASHFS_NOI 0 @@ -71,6 +73,9 @@ #define SQUASHFS_UNCOMPRESSED_DATA(flags) SQUASHFS_BIT(flags, \ SQUASHFS_NOD) +#define SQUASHFS_CHECK_DATA(flags) SQUASHFS_BIT(flags, \ + SQUASHFS_CHECK) + #define SQUASHFS_UNCOMPRESSED_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ SQUASHFS_NOF) @@ -86,14 +91,14 @@ #define SQUASHFS_EXPORTABLE(flags) SQUASHFS_BIT(flags, \ SQUASHFS_EXPORT) -#define SQUASHFS_CHECK_DATA(flags) SQUASHFS_BIT(flags, \ - SQUASHFS_CHECK) - #define SQUASHFS_MKFLAGS(noi, nod, check_data, nof, no_frag, always_frag, \ duplicate_checking, exportable) \ - ((noi) | ((nod) << 1) | ((check_data) << 2) | ((nof) << 3) | \ - ((no_frag) << 4) | ((always_frag) << 5) | \ - ((duplicate_checking) << 6) | ((exportable) << 7)) + ((noi) << SQUASHFS_NOI | (nod) << SQUASHFS_NOD | \ + (check_data) << SQUASHFS_CHECK | (nof) << SQUASHFS_NOF | \ + (no_frag) << SQUASHFS_NO_FRAG | \ + (always_frag) << SQUASHFS_ALWAYS_FRAG | \ + (duplicate_checking << SQUASHFS_DUPLICATE) | \ + (exportable) << SQUASHFS_EXPORT) /* Max number of types and file types */ #define SQUASHFS_DIR_TYPE 1 @@ -126,16 +131,15 @@ * Inode number ops. Inodes consist of a compressed block number, and an * uncompressed offset within that block */ -#define SQUASHFS_INODE_BLK(a) ((unsigned int) ((a) >> 16)) +#define SQUASHFS_INODE_BLK(a) ((__u32) ((a) >> 16)) -#define SQUASHFS_INODE_OFFSET(a) ((unsigned int) ((a) & 0xffff)) +#define SQUASHFS_INODE_OFFSET(a) ((__u32) ((a) & 0xffff)) #define SQUASHFS_MKINODE(A, B) \ ((squashfs_inode_t)(((squashfs_inode_t) (A) << 16) + (B))) /* Compute 32 bit VFS inode number from squashfs inode number */ -#define SQUASHFS_MK_VFS_INODE(a, b) ((unsigned int) (((a) << 8) + \ - ((b) >> 2) + 1)) +#define SQUASHFS_MK_VFS_INODE(a, b) ((__u32) (((a) << 8) + ((b) >> 2) + 1)) /* XXX */ /* Translate between VFS mode and squashfs mode */ @@ -156,7 +160,7 @@ SQUASHFS_METADATA_SIZE) #define SQUASHFS_FRAGMENT_INDEX_BYTES(A) (SQUASHFS_FRAGMENT_INDEXES(A) *\ - sizeof(long long)) + sizeof(__s64)) /* inode lookup table defines */ #define SQUASHFS_LOOKUP_BYTES(A) ((A) * sizeof(squashfs_inode_t)) @@ -172,38 +176,38 @@ SQUASHFS_METADATA_SIZE) #define SQUASHFS_LOOKUP_BLOCK_BYTES(A) (SQUASHFS_LOOKUP_BLOCKS(A) *\ - sizeof(long long)) + sizeof(__s64)) /* cached data constants for filesystem */ #define SQUASHFS_CACHED_BLKS 8 #define SQUASHFS_MAX_FILE_SIZE_LOG 64 -#define SQUASHFS_MAX_FILE_SIZE ((long long) 1 << \ +#define SQUASHFS_MAX_FILE_SIZE (1LL << \ (SQUASHFS_MAX_FILE_SIZE_LOG - 2)) #define SQUASHFS_MARKER_BYTE 0xff /* meta index cache */ -#define SQUASHFS_META_INDEXES (SQUASHFS_METADATA_SIZE / sizeof(unsigned int)) +#define SQUASHFS_META_INDEXES (SQUASHFS_METADATA_SIZE / sizeof(__u32)) #define SQUASHFS_META_ENTRIES 31 #define SQUASHFS_META_NUMBER 8 #define SQUASHFS_SLOTS 4 struct meta_entry { - long long data_block; - unsigned int index_block; - unsigned short offset; - unsigned short pad; + __s64 data_block; + __u32 index_block; + __u16 offset; + __u16 pad; }; struct meta_index { - unsigned int inode_number; - unsigned int offset; - unsigned short entries; - unsigned short skip; - unsigned short locked; - unsigned short pad; + __u32 inode_number; + __u32 offset; + __u16 entries; + __u16 skip; + __u16 locked; + __u16 pad; struct meta_entry meta_entry[SQUASHFS_META_ENTRIES]; }; @@ -212,17 +216,17 @@ struct meta_index { * definitions for structures on disk */ -typedef long long squashfs_block_t; -typedef long long squashfs_inode_t; +typedef __s64 squashfs_block_t; +typedef __s64 squashfs_inode_t; struct squashfs_super_block { - unsigned int s_magic; - unsigned int inodes; - unsigned int bytes_used_2; - unsigned int uid_start_2; - unsigned int guid_start_2; - unsigned int inode_table_start_2; - unsigned int directory_table_start_2; + __u32 s_magic; + __u32 inodes; + __u32 bytes_used_2; + __u32 uid_start_2; + __u32 guid_start_2; + __u32 inode_table_start_2; + __u32 directory_table_start_2; unsigned int s_major:16; unsigned int s_minor:16; unsigned int block_size_1:16; @@ -230,24 +234,24 @@ struct squashfs_super_block { unsigned int flags:8; unsigned int no_uids:8; unsigned int no_guids:8; - unsigned int mkfs_time /* time of filesystem creation */; + __u32 mkfs_time /* time of filesystem creation */; squashfs_inode_t root_inode; - unsigned int block_size; - unsigned int fragments; - unsigned int fragment_table_start_2; - long long bytes_used; - long long uid_start; - long long guid_start; - long long inode_table_start; - long long directory_table_start; - long long fragment_table_start; - long long lookup_table_start; + __u32 block_size; + __u32 fragments; + __u32 fragment_table_start_2; + __s64 bytes_used; + __s64 uid_start; + __s64 guid_start; + __s64 inode_table_start; + __s64 directory_table_start; + __s64 fragment_table_start; + __s64 lookup_table_start; } __attribute__ ((packed)); struct squashfs_dir_index { - unsigned int index; - unsigned int start_block; - unsigned char size; + __u32 index; + __u32 start_block; + __u8 size; unsigned char name[0]; } __attribute__ ((packed)); @@ -256,8 +260,8 @@ struct squashfs_dir_index { unsigned int mode:12; \ unsigned int uid:8; \ unsigned int guid:8; \ - unsigned int mtime; \ - unsigned int inode_number; + __u32 mtime; \ + __u32 inode_number; struct squashfs_base_inode_header { SQUASHFS_BASE_INODE_HEADER; @@ -265,58 +269,58 @@ struct squashfs_base_inode_header { struct squashfs_ipc_inode_header { SQUASHFS_BASE_INODE_HEADER; - unsigned int nlink; + __u32 nlink; } __attribute__ ((packed)); struct squashfs_dev_inode_header { SQUASHFS_BASE_INODE_HEADER; - unsigned int nlink; - unsigned short rdev; + __u32 nlink; + __u16 rdev; } __attribute__ ((packed)); struct squashfs_symlink_inode_header { SQUASHFS_BASE_INODE_HEADER; - unsigned int nlink; - unsigned short symlink_size; + __u32 nlink; + __u16 symlink_size; char symlink[0]; } __attribute__ ((packed)); struct squashfs_reg_inode_header { SQUASHFS_BASE_INODE_HEADER; squashfs_block_t start_block; - unsigned int fragment; - unsigned int offset; - unsigned int file_size; - unsigned short block_list[0]; + __u32 fragment; + __u32 offset; + __u32 file_size; + __u16 block_list[0]; } __attribute__ ((packed)); struct squashfs_lreg_inode_header { SQUASHFS_BASE_INODE_HEADER; - unsigned int nlink; + __u32 nlink; squashfs_block_t start_block; - unsigned int fragment; - unsigned int offset; - long long file_size; - unsigned short block_list[0]; + __u32 fragment; + __u32 offset; + __s64 file_size; + __u16 block_list[0]; } __attribute__ ((packed)); struct squashfs_dir_inode_header { SQUASHFS_BASE_INODE_HEADER; - unsigned int nlink; + __u32 nlink; unsigned int file_size:19; unsigned int offset:13; - unsigned int start_block; - unsigned int parent_inode; + __u32 start_block; + __u32 parent_inode; } __attribute__ ((packed)); struct squashfs_ldir_inode_header { SQUASHFS_BASE_INODE_HEADER; - unsigned int nlink; + __u32 nlink; unsigned int file_size:27; unsigned int offset:13; - unsigned int start_block; + __u32 start_block; unsigned int i_count:16; - unsigned int parent_inode; + __u32 parent_inode; struct squashfs_dir_index index[0]; } __attribute__ ((packed)); @@ -341,14 +345,14 @@ struct squashfs_dir_entry { struct squashfs_dir_header { unsigned int count:8; - unsigned int start_block; - unsigned int inode_number; + __u32 start_block; + __u32 inode_number; } __attribute__ ((packed)); struct squashfs_fragment_entry { - long long start_block; - unsigned int size; - unsigned int unused; + __s64 start_block; + __u32 size; + __u32 unused; } __attribute__ ((packed)); extern int squashfs_uncompress_block(void *d, int dstlen, void *s, int srclen); @@ -365,7 +369,7 @@ extern int squashfs_uncompress_exit(void #define SQUASHFS_SWAP_START \ int bits;\ int b_pos;\ - unsigned long long val;\ + __u64 val;\ unsigned char *s;\ unsigned char *d; -- With kind regards, Geert Uytterhoeven Software Architect Sony Techsoft Centre Europe The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium Phone: +32 (0)2 700 8453 Fax: +32 (0)2 700 8622 E-mail: Gee...@so... Internet: http://www.sony-europe.com/ A division of Sony Europe (Belgium) N.V. VAT BE 0413.825.160 · RPR Brussels Fortis · BIC GEBABEBB · IBAN BE41293037680010 |