elflink: remove unneeded extlinux/ext2_fs.h
authorFeng Tang <feng.tang@intel.com>
Thu, 15 Jul 2010 09:52:14 +0000 (17:52 +0800)
committerFeng Tang <feng.tang@intel.com>
Tue, 20 Jul 2010 03:10:05 +0000 (11:10 +0800)
extlinux/ext2_fs.h [deleted file]

diff --git a/extlinux/ext2_fs.h b/extlinux/ext2_fs.h
deleted file mode 100644 (file)
index 45f3831..0000000
+++ /dev/null
@@ -1,489 +0,0 @@
-/*
- *  linux/include/linux/ext2_fs.h
- *
- * Copyright (C) 1992, 1993, 1994, 1995
- * Remy Card (card@masi.ibp.fr)
- * Laboratoire MASI - Institut Blaise Pascal
- * Universite Pierre et Marie Curie (Paris VI)
- *
- *  from
- *
- *  linux/include/linux/minix_fs.h
- *
- *  Copyright (C) 1991, 1992  Linus Torvalds
- */
-
-/* Private copy for extlinux */
-
-#ifndef _LINUX_EXT2_FS_H
-#define _LINUX_EXT2_FS_H
-
-#include <linux/types.h>
-
-/*
- * The second extended filesystem constants/structures
- */
-
-/*
- * Define EXT2FS_DEBUG to produce debug messages
- */
-#undef EXT2FS_DEBUG
-
-/*
- * Define EXT2_PREALLOCATE to preallocate data blocks for expanding files
- */
-#define EXT2_PREALLOCATE
-#define EXT2_DEFAULT_PREALLOC_BLOCKS   8
-
-/*
- * The second extended file system version
- */
-#define EXT2FS_DATE            "95/08/09"
-#define EXT2FS_VERSION         "0.5b"
-
-/*
- * Debug code
- */
-#ifdef EXT2FS_DEBUG
-#      define ext2_debug(f, a...)      { \
-                                       printk ("EXT2-fs DEBUG (%s, %d): %s:", \
-                                               __FILE__, __LINE__, __FUNCTION__); \
-                                       printk (f, ## a); \
-                                       }
-#else
-#      define ext2_debug(f, a...) /**/
-#endif
-/*
- * Special inode numbers
- */
-#define        EXT2_BAD_INO             1      /* Bad blocks inode */
-#define EXT2_ROOT_INO           2      /* Root inode */
-#define EXT2_ACL_IDX_INO        3      /* ACL inode */
-#define EXT2_ACL_DATA_INO       4      /* ACL inode */
-#define EXT2_BOOT_LOADER_INO    5      /* Boot loader inode */
-#define EXT2_UNDEL_DIR_INO      6      /* Undelete directory inode */
-/* First non-reserved inode for old ext2 filesystems */
-#define EXT2_GOOD_OLD_FIRST_INO        11
-/*
- * The second extended file system magic number
- */
-#define EXT2_SUPER_MAGIC       0xEF53
-/*
- * Maximal count of links to a file
- */
-#define EXT2_LINK_MAX          32000
-/*
- * Macro-instructions used to manage several block sizes
- */
-#define EXT2_MIN_BLOCK_SIZE            1024
-#define        EXT2_MAX_BLOCK_SIZE             4096
-#define EXT2_MIN_BLOCK_LOG_SIZE                  10
-# define EXT2_BLOCK_SIZE(s)            (EXT2_MIN_BLOCK_SIZE << (s)->s_log_block_size)
-#define EXT2_ACLE_PER_BLOCK(s)         (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_acl_entry))
-#define        EXT2_ADDR_PER_BLOCK(s)          (EXT2_BLOCK_SIZE(s) / sizeof (__u32))
-# define EXT2_BLOCK_SIZE_BITS(s)       ((s)->s_log_block_size + 10)
-#define EXT2_INODE_SIZE(s)     (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
-                                EXT2_GOOD_OLD_INODE_SIZE : \
-                                (s)->s_inode_size)
-#define EXT2_FIRST_INO(s)      (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
-                                EXT2_GOOD_OLD_FIRST_INO : \
-                                (s)->s_first_ino)
-/*
- * Macro-instructions used to manage fragments
- */
-#define EXT2_MIN_FRAG_SIZE             1024
-#define        EXT2_MAX_FRAG_SIZE              4096
-#define EXT2_MIN_FRAG_LOG_SIZE           10
-# define EXT2_FRAG_SIZE(s)             (EXT2_MIN_FRAG_SIZE << (s)->s_log_frag_size)
-# define EXT2_FRAGS_PER_BLOCK(s)       (EXT2_BLOCK_SIZE(s) / EXT2_FRAG_SIZE(s))
-/*
- * ACL structures
- */
-    struct ext2_acl_header {   /* Header of Access Control Lists */
-    __u32 aclh_size;
-    __u32 aclh_file_count;
-    __u32 aclh_acle_count;
-    __u32 aclh_first_acle;
-};
-
-struct ext2_acl_entry {                /* Access Control List Entry */
-    __u32 acle_size;
-    __u16 acle_perms;          /* Access permissions */
-    __u16 acle_type;           /* Type of entry */
-    __u16 acle_tag;            /* User or group identity */
-    __u16 acle_pad1;
-    __u32 acle_next;           /* Pointer on next entry for the */
-    /* same inode or on next free entry */
-};
-
-/*
- * Structure of a blocks group descriptor
- */
-struct ext2_group_desc {
-    __u32 bg_block_bitmap;     /* Blocks bitmap block */
-    __u32 bg_inode_bitmap;     /* Inodes bitmap block */
-    __u32 bg_inode_table;      /* Inodes table block */
-    __u16 bg_free_blocks_count;        /* Free blocks count */
-    __u16 bg_free_inodes_count;        /* Free inodes count */
-    __u16 bg_used_dirs_count;  /* Directories count */
-    __u16 bg_pad;
-    __u32 bg_reserved[3];
-};
-
-/*
- * Macro-instructions used to manage group descriptors
- */
-# define EXT2_BLOCKS_PER_GROUP(s)      ((s)->s_blocks_per_group)
-# define EXT2_DESC_PER_BLOCK(s)                (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group_desc))
-# define EXT2_INODES_PER_GROUP(s)      ((s)->s_inodes_per_group)
-
-/*
- * Constants relative to the data blocks
- */
-#define        EXT2_NDIR_BLOCKS                12
-#define        EXT2_IND_BLOCK                  EXT2_NDIR_BLOCKS
-#define        EXT2_DIND_BLOCK                 (EXT2_IND_BLOCK + 1)
-#define        EXT2_TIND_BLOCK                 (EXT2_DIND_BLOCK + 1)
-#define        EXT2_N_BLOCKS                   (EXT2_TIND_BLOCK + 1)
-
-/*
- * Inode flags
- */
-#define        EXT2_SECRM_FL                   0x00000001      /* Secure deletion */
-#define        EXT2_UNRM_FL                    0x00000002      /* Undelete */
-#define        EXT2_COMPR_FL                   0x00000004      /* Compress file */
-#define EXT2_SYNC_FL                   0x00000008      /* Synchronous updates */
-#define EXT2_IMMUTABLE_FL              0x00000010      /* Immutable file */
-#define EXT2_APPEND_FL                 0x00000020      /* writes to file may only append */
-#define EXT2_NODUMP_FL                 0x00000040      /* do not dump file */
-#define EXT2_NOATIME_FL                        0x00000080      /* do not update atime */
-/* Reserved for compression usage... */
-#define EXT2_DIRTY_FL                  0x00000100
-#define EXT2_COMPRBLK_FL               0x00000200      /* One or more compressed clusters */
-#define EXT2_NOCOMP_FL                 0x00000400      /* Don't compress */
-#define EXT2_ECOMPR_FL                 0x00000800      /* Compression error */
-/* End compression flags --- maybe not all used */
-#define EXT2_BTREE_FL                  0x00001000      /* btree format dir */
-#define EXT2_RESERVED_FL               0x80000000      /* reserved for ext2 lib */
-
-#define EXT2_FL_USER_VISIBLE           0x00001FFF      /* User visible flags */
-#define EXT2_FL_USER_MODIFIABLE                0x000000FF      /* User modifiable flags */
-
-/*
- * Structure of an inode on the disk
- */
-struct ext2_inode {
-    __u16 i_mode;              /* File mode */
-    __u16 i_uid;               /* Low 16 bits of Owner Uid */
-    __u32 i_size;              /* Size in bytes */
-    __u32 i_atime;             /* Access time */
-    __u32 i_ctime;             /* Creation time */
-    __u32 i_mtime;             /* Modification time */
-    __u32 i_dtime;             /* Deletion Time */
-    __u16 i_gid;               /* Low 16 bits of Group Id */
-    __u16 i_links_count;       /* Links count */
-    __u32 i_blocks;            /* Blocks count */
-    __u32 i_flags;             /* File flags */
-    union {
-       struct {
-           __u32 l_i_reserved1;
-       } linux1;
-       struct {
-           __u32 h_i_translator;
-       } hurd1;
-       struct {
-           __u32 m_i_reserved1;
-       } masix1;
-    } osd1;                    /* OS dependent 1 */
-    __u32 i_block[EXT2_N_BLOCKS];      /* Pointers to blocks */
-    __u32 i_generation;                /* File version (for NFS) */
-    __u32 i_file_acl;          /* File ACL */
-    __u32 i_dir_acl;           /* Directory ACL */
-    __u32 i_faddr;             /* Fragment address */
-    union {
-       struct {
-           __u8 l_i_frag;      /* Fragment number */
-           __u8 l_i_fsize;     /* Fragment size */
-           __u16 i_pad1;
-           __u16 l_i_uid_high; /* these 2 fields    */
-           __u16 l_i_gid_high; /* were reserved2[0] */
-           __u32 l_i_reserved2;
-       } linux2;
-       struct {
-           __u8 h_i_frag;      /* Fragment number */
-           __u8 h_i_fsize;     /* Fragment size */
-           __u16 h_i_mode_high;
-           __u16 h_i_uid_high;
-           __u16 h_i_gid_high;
-           __u32 h_i_author;
-       } hurd2;
-       struct {
-           __u8 m_i_frag;      /* Fragment number */
-           __u8 m_i_fsize;     /* Fragment size */
-           __u16 m_pad1;
-           __u32 m_i_reserved2[2];
-       } masix2;
-    } osd2;                    /* OS dependent 2 */
-};
-
-#define i_size_high    i_dir_acl
-
-#if defined(__KERNEL__) || defined(__linux__)
-#define i_reserved1    osd1.linux1.l_i_reserved1
-#define i_frag         osd2.linux2.l_i_frag
-#define i_fsize                osd2.linux2.l_i_fsize
-#define i_uid_low      i_uid
-#define i_gid_low      i_gid
-#define i_uid_high     osd2.linux2.l_i_uid_high
-#define i_gid_high     osd2.linux2.l_i_gid_high
-#define i_reserved2    osd2.linux2.l_i_reserved2
-#endif
-
-#ifdef __hurd__
-#define i_translator   osd1.hurd1.h_i_translator
-#define i_frag         osd2.hurd2.h_i_frag;
-#define i_fsize                osd2.hurd2.h_i_fsize;
-#define i_uid_high     osd2.hurd2.h_i_uid_high
-#define i_gid_high     osd2.hurd2.h_i_gid_high
-#define i_author       osd2.hurd2.h_i_author
-#endif
-
-#ifdef __masix__
-#define i_reserved1    osd1.masix1.m_i_reserved1
-#define i_frag         osd2.masix2.m_i_frag
-#define i_fsize                osd2.masix2.m_i_fsize
-#define i_reserved2    osd2.masix2.m_i_reserved2
-#endif
-
-/*
- * File system states
- */
-#define        EXT2_VALID_FS                   0x0001  /* Unmounted cleanly */
-#define        EXT2_ERROR_FS                   0x0002  /* Errors detected */
-
-/*
- * Mount flags
- */
-#define EXT2_MOUNT_CHECK               0x0001  /* Do mount-time checks */
-#define EXT2_MOUNT_GRPID               0x0004  /* Create files with directory's group */
-#define EXT2_MOUNT_DEBUG               0x0008  /* Some debugging messages */
-#define EXT2_MOUNT_ERRORS_CONT         0x0010  /* Continue on errors */
-#define EXT2_MOUNT_ERRORS_RO           0x0020  /* Remount fs ro on errors */
-#define EXT2_MOUNT_ERRORS_PANIC                0x0040  /* Panic on errors */
-#define EXT2_MOUNT_MINIX_DF            0x0080  /* Mimics the Minix statfs */
-#define EXT2_MOUNT_NO_UID32            0x0200  /* Disable 32-bit UIDs */
-
-#define clear_opt(o, opt)              o &= ~EXT2_MOUNT_##opt
-#define set_opt(o, opt)                        o |= EXT2_MOUNT_##opt
-#define test_opt(sb, opt)              ((sb)->u.ext2_sb.s_mount_opt & \
-                                        EXT2_MOUNT_##opt)
-/*
- * Maximal mount counts between two filesystem checks
- */
-#define EXT2_DFL_MAX_MNT_COUNT         20      /* Allow 20 mounts */
-#define EXT2_DFL_CHECKINTERVAL         0       /* Don't use interval check */
-
-/*
- * Behaviour when detecting errors
- */
-#define EXT2_ERRORS_CONTINUE           1       /* Continue execution */
-#define EXT2_ERRORS_RO                 2       /* Remount fs read-only */
-#define EXT2_ERRORS_PANIC              3       /* Panic */
-#define EXT2_ERRORS_DEFAULT            EXT2_ERRORS_CONTINUE
-
-/*
- * Structure of the super block
- */
-struct ext2_super_block {
-    __u32 s_inodes_count;      /* Inodes count */
-    __u32 s_blocks_count;      /* Blocks count */
-    __u32 s_r_blocks_count;    /* Reserved blocks count */
-    __u32 s_free_blocks_count; /* Free blocks count */
-    __u32 s_free_inodes_count; /* Free inodes count */
-    __u32 s_first_data_block;  /* First Data Block */
-    __u32 s_log_block_size;    /* Block size */
-    __s32 s_log_frag_size;     /* Fragment size */
-    __u32 s_blocks_per_group;  /* # Blocks per group */
-    __u32 s_frags_per_group;   /* # Fragments per group */
-    __u32 s_inodes_per_group;  /* # Inodes per group */
-    __u32 s_mtime;             /* Mount time */
-    __u32 s_wtime;             /* Write time */
-    __u16 s_mnt_count;         /* Mount count */
-    __s16 s_max_mnt_count;     /* Maximal mount count */
-    __u16 s_magic;             /* Magic signature */
-    __u16 s_state;             /* File system state */
-    __u16 s_errors;            /* Behaviour when detecting errors */
-    __u16 s_minor_rev_level;   /* minor revision level */
-    __u32 s_lastcheck;         /* time of last check */
-    __u32 s_checkinterval;     /* max. time between checks */
-    __u32 s_creator_os;                /* OS */
-    __u32 s_rev_level;         /* Revision level */
-    __u16 s_def_resuid;                /* Default uid for reserved blocks */
-    __u16 s_def_resgid;                /* Default gid for reserved blocks */
-    /*
-     * These fields are for EXT2_DYNAMIC_REV superblocks only.
-     *
-     * Note: the difference between the compatible feature set and
-     * the incompatible feature set is that if there is a bit set
-     * in the incompatible feature set that the kernel doesn't
-     * know about, it should refuse to mount the filesystem.
-     *
-     * e2fsck's requirements are more strict; if it doesn't know
-     * about a feature in either the compatible or incompatible
-     * feature set, it must abort and not try to meddle with
-     * things it doesn't understand...
-     */
-    __u32 s_first_ino;         /* First non-reserved inode */
-    __u16 s_inode_size;                /* size of inode structure */
-    __u16 s_block_group_nr;    /* block group # of this superblock */
-    __u32 s_feature_compat;    /* compatible feature set */
-    __u32 s_feature_incompat;  /* incompatible feature set */
-    __u32 s_feature_ro_compat; /* readonly-compatible feature set */
-    __u8 s_uuid[16];           /* 128-bit uuid for volume */
-    char s_volume_name[16];    /* volume name */
-    char s_last_mounted[64];   /* directory where last mounted */
-    __u32 s_algorithm_usage_bitmap;    /* For compression */
-    /*
-     * Performance hints.  Directory preallocation should only
-     * happen if the EXT2_COMPAT_PREALLOC flag is on.
-     */
-    __u8 s_prealloc_blocks;    /* Nr of blocks to try to preallocate */
-    __u8 s_prealloc_dir_blocks;        /* Nr to preallocate for dirs */
-    __u16 s_padding1;
-    __u32 s_reserved[204];     /* Padding to the end of the block */
-};
-
-/* Assume that user mode programs are passing in an ext2fs superblock, not
- * a kernel struct super_block.  This will allow us to call the feature-test
- * macros from user land. */
-#define EXT2_SB(sb)    (sb)
-
-/*
- * Codes for operating systems
- */
-#define EXT2_OS_LINUX          0
-#define EXT2_OS_HURD           1
-#define EXT2_OS_MASIX          2
-#define EXT2_OS_FREEBSD                3
-#define EXT2_OS_LITES          4
-
-/*
- * Revision levels
- */
-#define EXT2_GOOD_OLD_REV      0       /* The good old (original) format */
-#define EXT2_DYNAMIC_REV       1       /* V2 format w/ dynamic inode sizes */
-
-#define EXT2_CURRENT_REV       EXT2_GOOD_OLD_REV
-#define EXT2_MAX_SUPP_REV      EXT2_DYNAMIC_REV
-
-#define EXT2_GOOD_OLD_INODE_SIZE 128
-
-/*
- * Feature set definitions
- */
-
-#define EXT2_HAS_COMPAT_FEATURE(sb,mask)                       \
-       ( EXT2_SB(sb)->s_es->s_feature_compat & cpu_to_le32(mask) )
-#define EXT2_HAS_RO_COMPAT_FEATURE(sb,mask)                    \
-       ( EXT2_SB(sb)->s_es->s_feature_ro_compat & cpu_to_le32(mask) )
-#define EXT2_HAS_INCOMPAT_FEATURE(sb,mask)                     \
-       ( EXT2_SB(sb)->s_es->s_feature_incompat & cpu_to_le32(mask) )
-#define EXT2_SET_COMPAT_FEATURE(sb,mask)                       \
-       EXT2_SB(sb)->s_es->s_feature_compat |= cpu_to_le32(mask)
-#define EXT2_SET_RO_COMPAT_FEATURE(sb,mask)                    \
-       EXT2_SB(sb)->s_es->s_feature_ro_compat |= cpu_to_le32(mask)
-#define EXT2_SET_INCOMPAT_FEATURE(sb,mask)                     \
-       EXT2_SB(sb)->s_es->s_feature_incompat |= cpu_to_le32(mask)
-#define EXT2_CLEAR_COMPAT_FEATURE(sb,mask)                     \
-       EXT2_SB(sb)->s_es->s_feature_compat &= ~cpu_to_le32(mask)
-#define EXT2_CLEAR_RO_COMPAT_FEATURE(sb,mask)                  \
-       EXT2_SB(sb)->s_es->s_feature_ro_compat &= ~cpu_to_le32(mask)
-#define EXT2_CLEAR_INCOMPAT_FEATURE(sb,mask)                   \
-       EXT2_SB(sb)->s_es->s_feature_incompat &= ~cpu_to_le32(mask)
-
-#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_COMPAT_ANY                        0xffffffff
-
-#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_RO_COMPAT_ANY             0xffffffff
-
-#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_ANY              0xffffffff
-
-#define EXT2_FEATURE_COMPAT_SUPP       0
-#define EXT2_FEATURE_INCOMPAT_SUPP     EXT2_FEATURE_INCOMPAT_FILETYPE
-#define EXT2_FEATURE_RO_COMPAT_SUPP    (EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER| \
-                                        EXT2_FEATURE_RO_COMPAT_LARGE_FILE| \
-                                        EXT2_FEATURE_RO_COMPAT_BTREE_DIR)
-#define EXT2_FEATURE_RO_COMPAT_UNSUPPORTED     ~EXT2_FEATURE_RO_COMPAT_SUPP
-#define EXT2_FEATURE_INCOMPAT_UNSUPPORTED      ~EXT2_FEATURE_INCOMPAT_SUPP
-
-/*
- * Default values for user and/or group using reserved blocks
- */
-#define        EXT2_DEF_RESUID         0
-#define        EXT2_DEF_RESGID         0
-
-/*
- * Structure of a directory entry
- */
-#define EXT2_NAME_LEN 255
-
-struct ext2_dir_entry {
-    __u32 inode;               /* Inode number */
-    __u16 rec_len;             /* Directory entry length */
-    __u16 name_len;            /* Name length */
-    char name[EXT2_NAME_LEN];  /* File name */
-};
-
-/*
- * The new version of the directory entry.  Since EXT2 structures are
- * stored in intel byte order, and the name_len field could never be
- * bigger than 255 chars, it's safe to reclaim the extra byte for the
- * file_type field.
- */
-struct ext2_dir_entry_2 {
-    __u32 inode;               /* Inode number */
-    __u16 rec_len;             /* Directory entry length */
-    __u8 name_len;             /* Name length */
-    __u8 file_type;
-    char name[EXT2_NAME_LEN];  /* File name */
-};
-
-/*
- * 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
-};
-
-/*
- * EXT2_DIR_PAD defines the directory entries boundaries
- *
- * NOTE: It must be a multiple of 4
- */
-#define EXT2_DIR_PAD                   4
-#define EXT2_DIR_ROUND                 (EXT2_DIR_PAD - 1)
-#define EXT2_DIR_REC_LEN(name_len)     (((name_len) + 8 + EXT2_DIR_ROUND) & \
-                                        ~EXT2_DIR_ROUND)
-
-#endif /* _LINUX_EXT2_FS_H */