/**************************************************************************** **************************************************************************** *** *** This header was automatically generated from a Linux kernel header *** of the same name, to make information necessary for userspace to *** call into the kernel available to libc. It contains only constants, *** structures, and macros generated from the original header, and thus, *** contains no copyrightable information. *** **************************************************************************** ****************************************************************************/ #ifndef _EXT4_EXTENTS #define _EXT4_EXTENTS #include "ext4.h" #define AGGRESSIVE_TEST_ #define EXTENTS_STATS__ #define CHECK_BINSEARCH__ #define EXT_DEBUG__ #ifdef EXT_DEBUG #define ext_debug(a...) printk(a) #else #define ext_debug(a...) #endif #define EXT_STATS_ struct ext4_extent { __le32 ee_block; __le16 ee_len; __le16 ee_start_hi; __le32 ee_start_lo; }; struct ext4_extent_idx { __le32 ei_block; __le32 ei_leaf_lo; __le16 ei_leaf_hi; __u16 ei_unused; }; struct ext4_extent_header { __le16 eh_magic; __le16 eh_entries; __le16 eh_max; __le16 eh_depth; __le32 eh_generation; }; #define EXT4_EXT_MAGIC 0xf30a struct ext4_ext_path { ext4_fsblk_t p_block; __u16 p_depth; struct ext4_extent *p_ext; struct ext4_extent_idx *p_idx; struct ext4_extent_header *p_hdr; struct buffer_head *p_bh; }; #define EXT4_EXT_CACHE_NO 0 #define EXT4_EXT_CACHE_GAP 1 #define EXT4_EXT_CACHE_EXTENT 2 #define EXT_CONTINUE 0 #define EXT_BREAK 1 #define EXT_REPEAT 2 #define EXT_MAX_BLOCK 0xffffffff #define EXT_INIT_MAX_LEN (1UL << 15) #define EXT_UNINIT_MAX_LEN (EXT_INIT_MAX_LEN - 1) #define EXT_FIRST_EXTENT(__hdr__) ((struct ext4_extent *) (((char *) (__hdr__)) + sizeof(struct ext4_extent_header))) #define EXT_FIRST_INDEX(__hdr__) ((struct ext4_extent_idx *) (((char *) (__hdr__)) + sizeof(struct ext4_extent_header))) #define EXT_HAS_FREE_INDEX(__path__) (le16_to_cpu((__path__)->p_hdr->eh_entries) < le16_to_cpu((__path__)->p_hdr->eh_max)) #define EXT_LAST_EXTENT(__hdr__) (EXT_FIRST_EXTENT((__hdr__)) + le16_to_cpu((__hdr__)->eh_entries) - 1) #define EXT_LAST_INDEX(__hdr__) (EXT_FIRST_INDEX((__hdr__)) + le16_to_cpu((__hdr__)->eh_entries) - 1) #define EXT_MAX_EXTENT(__hdr__) (EXT_FIRST_EXTENT((__hdr__)) + le16_to_cpu((__hdr__)->eh_max) - 1) #define EXT_MAX_INDEX(__hdr__) (EXT_FIRST_INDEX((__hdr__)) + le16_to_cpu((__hdr__)->eh_max) - 1) #endif