Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123#ifndef _EXT4_H#define _EXT4_H
#include <linux/jbd.h>/* Temporarily we need this. */#include <linux/ext3_fs.h>
typedef unsigned __int16 uint16_t;typedef unsigned __int32 uint32_t;typedef unsigned __int64 uint64_t;
typedef uint32_t ext4_lblk_t;typedef uint64_t ext4_fsblk_t;
/* * Flags used by ext4_map_blocks() */ /* Allocate any needed blocks and/or convert an unwritten extent to be an initialized ext4 */#define EXT4_GET_BLOCKS_CREATE 0x0001 /* Request the creation of an unwritten extent */#define EXT4_GET_BLOCKS_UNWRIT_EXT 0x0002#define EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT (EXT4_GET_BLOCKS_UNWRIT_EXT|\ EXT4_GET_BLOCKS_CREATE) /* Caller is from the delayed allocation writeout path * finally doing the actual allocation of delayed blocks */#define EXT4_GET_BLOCKS_DELALLOC_RESERVE 0x0004 /* caller is from the direct IO path, request to creation of an unwritten extents if not allocated, split the unwritten extent if blocks has been preallocated already*/#define EXT4_GET_BLOCKS_PRE_IO 0x0008#define EXT4_GET_BLOCKS_CONVERT 0x0010#define EXT4_GET_BLOCKS_IO_CREATE_EXT (EXT4_GET_BLOCKS_PRE_IO|\ EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT) /* Convert extent to initialized after IO complete */#define EXT4_GET_BLOCKS_IO_CONVERT_EXT (EXT4_GET_BLOCKS_CONVERT|\ EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT) /* Eventual metadata allocation (due to growing extent tree) * should not fail, so try to use reserved blocks for that.*/#define EXT4_GET_BLOCKS_METADATA_NOFAIL 0x0020 /* Don't normalize allocation size (used for fallocate) */#define EXT4_GET_BLOCKS_NO_NORMALIZE 0x0040 /* Request will not result in inode size update (user for fallocate) */#define EXT4_GET_BLOCKS_KEEP_SIZE 0x0080 /* Do not take i_data_sem locking in ext4_map_blocks */#define EXT4_GET_BLOCKS_NO_LOCK 0x0100 /* Do not put hole in extent cache */#define EXT4_GET_BLOCKS_NO_PUT_HOLE 0x0200 /* Convert written extents to unwritten */#define EXT4_GET_BLOCKS_CONVERT_UNWRITTEN 0x0400
/* * The bit position of these flags must not overlap with any of the * EXT4_GET_BLOCKS_*. They are used by ext4_find_extent(), * read_extent_tree_block(), ext4_split_extent_at(), * ext4_ext_insert_extent(), and ext4_ext_create_new_leaf(). * EXT4_EX_NOCACHE is used to indicate that the we shouldn't be * caching the extents when reading from the extent tree while a * truncate or punch hole operation is in progress. */#define EXT4_EX_NOCACHE 0x40000000#define EXT4_EX_FORCE_CACHE 0x20000000
/* * Flags used by ext4_free_blocks */#define EXT4_FREE_BLOCKS_METADATA 0x0001#define EXT4_FREE_BLOCKS_FORGET 0x0002#define EXT4_FREE_BLOCKS_VALIDATED 0x0004#define EXT4_FREE_BLOCKS_NO_QUOT_UPDATE 0x0008#define EXT4_FREE_BLOCKS_NOFREE_FIRST_CLUSTER 0x0010#define EXT4_FREE_BLOCKS_NOFREE_LAST_CLUSTER 0x0020
/* * Flags used in mballoc's allocation_context flags field. * * Also used to show what's going on for debugging purposes when the * flag field is exported via the traceport interface */
/* prefer goal again. length */#define EXT4_MB_HINT_MERGE 0x0001/* blocks already reserved */#define EXT4_MB_HINT_RESERVED 0x0002/* metadata is being allocated */#define EXT4_MB_HINT_METADATA 0x0004/* first blocks in the file */#define EXT4_MB_HINT_FIRST 0x0008/* search for the best chunk */#define EXT4_MB_HINT_BEST 0x0010/* data is being allocated */#define EXT4_MB_HINT_DATA 0x0020/* don't preallocate (for tails) */#define EXT4_MB_HINT_NOPREALLOC 0x0040/* allocate for locality group */#define EXT4_MB_HINT_GROUP_ALLOC 0x0080/* allocate goal blocks or none */#define EXT4_MB_HINT_GOAL_ONLY 0x0100/* goal is meaningful */#define EXT4_MB_HINT_TRY_GOAL 0x0200/* blocks already pre-reserved by delayed allocation */#define EXT4_MB_DELALLOC_RESERVED 0x0400/* We are doing stream allocation */#define EXT4_MB_STREAM_ALLOC 0x0800/* Use reserved root blocks if needed */#define EXT4_MB_USE_ROOT_BLOCKS 0x1000/* Use blocks from reserved pool */#define EXT4_MB_USE_RESERVED 0x2000
#define ext4_sb_info ext3_sb_info
static inline struct ext4_sb_info * EXT4_SB(struct super_block *sb){ return sb->s_fs_info;}#define EXT4_I(i) (i)
#include <linux/ext4_jbd2.h>#include <linux/ext4_ext.h>
#endif /* _EXT4_H */