package ext4

const (
	SectorSize       = 0x200
	SuperBlockSize   = 0x400
	GroupZeroPadding = 0x400
	rootInodeNumber  = 2

	INDEX_FL                        = 0x00001000
	EXTENTS_FL                      = 0x00080000
	FEATURE_COMPAT_DIR_PREALLOC     = 0x0001
	FEATURE_COMPAT_IMAGIC_INODES    = 0x0002
	FEATURE_COMPAT_HAS_JOURNAL      = 0x0004
	FEATURE_COMPAT_EXT_ATTR         = 0x0008
	FEATURE_COMPAT_RESIZE_INODE     = 0x0010
	FEATURE_COMPAT_DIR_INDEX        = 0x0020
	FEATURE_COMPAT_SPARSE_SUPER2    = 0x0200
	FEATURE_RO_COMPAT_SPARSE_SUPER  = 0x0001
	FEATURE_RO_COMPAT_LARGE_FILE    = 0x0002
	FEATURE_RO_COMPAT_BTREE_DIR     = 0x0004
	FEATURE_RO_COMPAT_HUGE_FILE     = 0x0008
	FEATURE_RO_COMPAT_GDT_CSUM      = 0x0010
	FEATURE_RO_COMPAT_DIR_NLINK     = 0x0020
	FEATURE_RO_COMPAT_EXTRA_ISIZE   = 0x0040
	FEATURE_RO_COMPAT_QUOTA         = 0x0100
	FEATURE_RO_COMPAT_BIGALLOC      = 0x0200
	FEATURE_RO_COMPAT_METADATA_CSUM = 0x0400
	FEATURE_RO_COMPAT_READONLY      = 0x1000
	FEATURE_RO_COMPAT_PROJECT       = 0x2000
	FEATURE_INCOMPAT_COMPRESSION    = 0x0001
	FEATURE_INCOMPAT_FILETYPE       = 0x0002
	FEATURE_INCOMPAT_RECOVER        = 0x0004
	FEATURE_INCOMPAT_JOURNAL_DEV    = 0x0008
	FEATURE_INCOMPAT_META_BG        = 0x0010
	FEATURE_INCOMPAT_EXTENTS        = 0x0040
	FEATURE_INCOMPAT_64BIT          = 0x0080
	FEATURE_INCOMPAT_MMP            = 0x0100
	FEATURE_INCOMPAT_FLEX_BG        = 0x0200
	FEATURE_INCOMPAT_EA_INODE       = 0x0400
	FEATURE_INCOMPAT_DIRDATA        = 0x1000
	FEATURE_INCOMPAT_CSUM_SEED      = 0x2000
	FEATURE_INCOMPAT_LARGEDIR       = 0x4000
	FEATURE_INCOMPAT_INLINE_DATA    = 0x8000
	FEATURE_INCOMPAT_ENCRYPT        = 0x10000
)

// File types (upper 4 bits of i_mode)
const (
	FileTypeMask        = 0xF000
	FileTypeSocket      = 0xC000
	FileTypeSymlink     = 0xA000
	FileTypeRegular     = 0x8000
	FileTypeBlockDevice = 0x6000
	FileTypeDir         = 0x4000
	FileTypeCharDevice  = 0x2000
	FileTypeFifo        = 0x1000
)
