Skip to content

ext4的原始特性将会开始慢慢支持。 #7

@Dirinkbottle

Description

@Dirinkbottle
// 兼容特性标志
impl Ext4Superblock {
    // 兼容特性标志
    pub const EXT4_FEATURE_COMPAT_DIR_PREALLOC: u32 = 0x0001;
    pub const EXT4_FEATURE_COMPAT_IMAGIC_INODES: u32 = 0x0002;
    pub const EXT4_FEATURE_COMPAT_HAS_JOURNAL: u32 = 0x0004;
    pub const EXT4_FEATURE_COMPAT_EXT_ATTR: u32 = 0x0008;
    pub const EXT4_FEATURE_COMPAT_RESIZE_INODE: u32 = 0x0010;
    pub const EXT4_FEATURE_COMPAT_DIR_INDEX: u32 = 0x0020;
    pub const EXT4_FEATURE_COMPAT_LAZY_BG: u32 = 0x0040;
    pub const EXT4_FEATURE_COMPAT_EXCLUDE_INODE: u32 = 0x0080;
    pub const EXT4_FEATURE_COMPAT_EXCLUDE_BITMAP: u32 = 0x0100;
    pub const EXT4_FEATURE_COMPAT_SPARSE_SUPER2: u32 = 0x0200;
    pub const EXT4_FEATURE_COMPAT_FAST_COMMIT: u32 = 0x0400;
    pub const EXT4_FEATURE_COMPAT_ORPHAN_FILE: u32 = 0x1000;
}

// 不兼容特性标志
impl Ext4Superblock {
    pub const EXT4_FEATURE_INCOMPAT_COMPRESSION: u32 = 0x0001;
    pub const EXT4_FEATURE_INCOMPAT_FILETYPE: u32 = 0x0002;
    pub const EXT4_FEATURE_INCOMPAT_RECOVER: u32 = 0x0004;
    pub const EXT4_FEATURE_INCOMPAT_JOURNAL_DEV: u32 = 0x0008;
    pub const EXT4_FEATURE_INCOMPAT_META_BG: u32 = 0x0010;
    pub const EXT4_FEATURE_INCOMPAT_EXTENTS: u32 = 0x0040;
    pub const EXT4_FEATURE_INCOMPAT_64BIT: u32 = 0x0080;
    pub const EXT4_FEATURE_INCOMPAT_MMP: u32 = 0x0100;
    pub const EXT4_FEATURE_INCOMPAT_FLEX_BG: u32 = 0x0200;
    pub const EXT4_FEATURE_INCOMPAT_EA_INODE: u32 = 0x0400;
    pub const EXT4_FEATURE_INCOMPAT_DIRDATA: u32 = 0x1000;
    pub const EXT4_FEATURE_INCOMPAT_CSUM_SEED: u32 = 0x2000;
    pub const EXT4_FEATURE_INCOMPAT_LARGEDIR: u32 = 0x4000;
    pub const EXT4_FEATURE_INCOMPAT_INLINE_DATA: u32 = 0x8000;
    pub const EXT4_FEATURE_INCOMPAT_ENCRYPT: u32 = 0x10000;
}

// 只读兼容特性标志
impl Ext4Superblock {
    pub const EXT4_FEATURE_RO_COMPAT_SPARSE_SUPER: u32 = 0x0001;
    pub const EXT4_FEATURE_RO_COMPAT_LARGE_FILE: u32 = 0x0002;
    pub const EXT4_FEATURE_RO_COMPAT_BTREE_DIR: u32 = 0x0004;
    pub const EXT4_FEATURE_RO_COMPAT_HUGE_FILE: u32 = 0x0008;
    pub const EXT4_FEATURE_RO_COMPAT_GDT_CSUM: u32 = 0x0010;
    pub const EXT4_FEATURE_RO_COMPAT_DIR_NLINK: u32 = 0x0020;
    pub const EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE: u32 = 0x0040;
    pub const EXT4_FEATURE_RO_COMPAT_HAS_SNAPSHOT: u32 = 0x0080;
    pub const EXT4_FEATURE_RO_COMPAT_QUOTA: u32 = 0x0100;
    pub const EXT4_FEATURE_RO_COMPAT_BIGALLOC: u32 = 0x0200;
    pub const EXT4_FEATURE_RO_COMPAT_METADATA_CSUM: u32 = 0x0400;
    pub const EXT4_FEATURE_RO_COMPAT_REPLICA: u32 = 0x0800;
    pub const EXT4_FEATURE_RO_COMPAT_READONLY: u32 = 0x1000;
    pub const EXT4_FEATURE_RO_COMPAT_PROJECT: u32 = 0x2000;
    pub const EXT4_FEATURE_RO_COMPAT_VERITY: u32 = 0x8000;
    pub const EXT4_FEATURE_RO_COMPAT_ORPHAN_PRESENT: u32 = 0x10000;
}

项目将会持续推进支持这些feature

Metadata

Metadata

Assignees

No one assigned

    Labels

    new featnew feat will support in feature

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions