Mercurial > hg > toybox
view toys/e2fs.h @ 953:13916d161ec0
xzcat: remove XZ_(PREALLOC|SINGLE), inline xz_dec_bcj_create
Because we only use XZ_DYNALLOC, there's a bunch of dead code.
This patch removes the #ifdef's and if()s associated with support for
multiple modes.
single_call was only used to store the mode; it is no longer needed.
A little bit of reorganization was needed to reduce the number of prototypes.
Documentation associated with dead code was dropped.
There are still some relics of multiple modes in the continued presence
of "XZ_DYNALLOC" and xz_mode.
Additionally, I inlined xz_dec_bcj_create; it was called once.
This loses about 125 lines, mostly comments.
author | Isaac Dunham <idunham@lavabit.com> |
---|---|
date | Wed, 17 Jul 2013 17:25:07 -0500 |
parents | 786841fdb1e0 |
children |
line wrap: on
line source
/* mke2fs.h - Headers for ext2 * * Copyright 2006 Rob Landley <rob@landley.net> */ // Stuff defined in linux/ext2_fs.h #define EXT2_SUPER_MAGIC 0xEF53 struct ext2_superblock { uint32_t inodes_count; // Inodes count uint32_t blocks_count; // Blocks count uint32_t r_blocks_count; // Reserved blocks count uint32_t free_blocks_count; // Free blocks count uint32_t free_inodes_count; // Free inodes count uint32_t first_data_block; // First Data Block uint32_t log_block_size; // Block size uint32_t log_frag_size; // Fragment size uint32_t blocks_per_group; // Blocks per group uint32_t frags_per_group; // Fragments per group uint32_t inodes_per_group; // Inodes per group uint32_t mtime; // Mount time uint32_t wtime; // Write time uint16_t mnt_count; // Mount count uint16_t max_mnt_count; // Maximal mount count uint16_t magic; // Magic signature uint16_t state; // File system state uint16_t errors; // Behaviour when detecting errors uint16_t minor_rev_level; // minor revision level uint32_t lastcheck; // time of last check uint32_t checkinterval; // max. time between checks uint32_t creator_os; // OS uint32_t rev_level; // Revision level uint16_t def_resuid; // Default uid for reserved blocks uint16_t def_resgid; // Default gid for reserved blocks uint32_t first_ino; // First non-reserved inode uint16_t inode_size; // size of inode structure uint16_t block_group_nr; // block group # of this superblock uint32_t feature_compat; // compatible feature set uint32_t feature_incompat; // incompatible feature set uint32_t feature_ro_compat; // readonly-compatible feature set char uuid[16]; // 128-bit uuid for volume char volume_name[16]; // volume name char last_mounted[64]; // directory where last mounted uint32_t alg_usage_bitmap; // For compression // For EXT2_COMPAT_PREALLOC uint8_t prealloc_blocks; // Nr of blocks to try to preallocate uint8_t prealloc_dir_blocks; //Nr to preallocate for dirs uint16_t padding1; // For EXT3_FEATURE_COMPAT_HAS_JOURNAL uint8_t journal_uuid[16]; // uuid of journal superblock uint32_t journal_inum; // inode number of journal file uint32_t journal_dev; // device number of journal file uint32_t last_orphan; // start of list of inodes to delete uint32_t hash_seed[4]; // HTREE hash seed uint8_t def_hash_version; // Default hash version to use uint8_t padding2[3]; uint32_t default_mount_opts; uint32_t first_meta_bg; // First metablock block group uint32_t mkfs_time; // Creation timestamp uint32_t jnl_blocks[17]; // Backup of journal inode // uint32_t reserved[172]; // Padding to the end of the block }; struct ext2_group { uint32_t block_bitmap; // Block number of block bitmap uint32_t inode_bitmap; // Block number of inode bitmap uint32_t inode_table; // Block number of inode table uint16_t free_blocks_count; // How many free blocks in this group? uint16_t free_inodes_count; // How many free inodes in this group? uint16_t used_dirs_count; // How many directories? uint16_t reserved[7]; // pad to 32 bytes }; struct ext2_dentry { uint32_t inode; // Inode number uint16_t rec_len; // Directory entry length uint8_t name_len; // Name length uint8_t file_type; char name[0]; // File name }; struct ext2_inode { uint16_t mode; // File mode uint16_t uid; // Low 16 bits of Owner Uid uint32_t size; // Size in bytes uint32_t atime; // Access time uint32_t ctime; // Creation time uint32_t mtime; // Modification time uint32_t dtime; // Deletion Time uint16_t gid; // Low 16 bits of Group Id uint16_t links_count; // Links count uint32_t blocks; // Blocks count uint32_t flags; // File flags uint32_t reserved1; uint32_t block[15]; // Pointers to blocks uint32_t generation; // File version (for NFS) uint32_t file_acl; // File ACL uint32_t dir_acl; // Directory ACL (or top bits of file length) uint32_t faddr; // Last block in file uint8_t frag; // Fragment number uint8_t fsize; // Fragment size uint16_t pad1; uint16_t uid_high; // High bits of uid uint16_t gid_high; // High bits of gid uint32_t reserved2; }; #define EXT2_FEATURE_COMPAT_DIR_PREALLOC 0x0001 #define EXT2_FEATURE_COMPAT_IMAGIC_INODES 0x0002 #define EXT3_FEATURE_COMPAT_HAS_JOURNAL 0x0004 #define EXT2_FEATURE_COMPAT_EXT_ATTR 0x0008 #define EXT2_FEATURE_COMPAT_RESIZE_INO 0x0010 #define EXT2_FEATURE_COMPAT_DIR_INDEX 0x0020 #define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001 #define EXT2_FEATURE_RO_COMPAT_LARGE_FILE 0x0002 #define EXT2_FEATURE_RO_COMPAT_BTREE_DIR 0x0004 #define EXT2_FEATURE_INCOMPAT_COMPRESSION 0x0001 #define EXT2_FEATURE_INCOMPAT_FILETYPE 0x0002 #define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 #define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x0008 #define EXT2_FEATURE_INCOMPAT_META_BG 0x0010 #define EXT2_NAME_LEN 255 // Ext2 directory file types. Only the low 3 bits are used. The // other bits are reserved for now. enum { EXT2_FT_UNKNOWN, EXT2_FT_REG_FILE, EXT2_FT_DIR, EXT2_FT_CHRDEV, EXT2_FT_BLKDEV, EXT2_FT_FIFO, EXT2_FT_SOCK, EXT2_FT_SYMLINK, EXT2_FT_MAX };