The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/fs/udf/udf_sb.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 #ifndef __LINUX_UDF_SB_H
    2 #define __LINUX_UDF_SB_H
    3 
    4 #include <linux/mutex.h>
    5 #include <linux/bitops.h>
    6 
    7 /* Since UDF 2.01 is ISO 13346 based... */
    8 #define UDF_SUPER_MAGIC                 0x15013346
    9 
   10 #define UDF_MAX_READ_VERSION            0x0250
   11 #define UDF_MAX_WRITE_VERSION           0x0201
   12 
   13 #define UDF_FLAG_USE_EXTENDED_FE        0
   14 #define UDF_VERS_USE_EXTENDED_FE        0x0200
   15 #define UDF_FLAG_USE_STREAMS            1
   16 #define UDF_VERS_USE_STREAMS            0x0200
   17 #define UDF_FLAG_USE_SHORT_AD           2
   18 #define UDF_FLAG_USE_AD_IN_ICB          3
   19 #define UDF_FLAG_USE_FILE_CTIME_EA      4
   20 #define UDF_FLAG_STRICT                 5
   21 #define UDF_FLAG_UNDELETE               6
   22 #define UDF_FLAG_UNHIDE                 7
   23 #define UDF_FLAG_VARCONV                8
   24 #define UDF_FLAG_NLS_MAP                9
   25 #define UDF_FLAG_UTF8                   10
   26 #define UDF_FLAG_UID_FORGET     11    /* save -1 for uid to disk */
   27 #define UDF_FLAG_UID_IGNORE     12    /* use sb uid instead of on disk uid */
   28 #define UDF_FLAG_GID_FORGET     13
   29 #define UDF_FLAG_GID_IGNORE     14
   30 #define UDF_FLAG_UID_SET        15
   31 #define UDF_FLAG_GID_SET        16
   32 #define UDF_FLAG_SESSION_SET    17
   33 #define UDF_FLAG_LASTBLOCK_SET  18
   34 #define UDF_FLAG_BLOCKSIZE_SET  19
   35 
   36 #define UDF_PART_FLAG_UNALLOC_BITMAP    0x0001
   37 #define UDF_PART_FLAG_UNALLOC_TABLE     0x0002
   38 #define UDF_PART_FLAG_FREED_BITMAP      0x0004
   39 #define UDF_PART_FLAG_FREED_TABLE       0x0008
   40 #define UDF_PART_FLAG_READ_ONLY         0x0010
   41 #define UDF_PART_FLAG_WRITE_ONCE        0x0020
   42 #define UDF_PART_FLAG_REWRITABLE        0x0040
   43 #define UDF_PART_FLAG_OVERWRITABLE      0x0080
   44 
   45 #define UDF_MAX_BLOCK_LOADED    8
   46 
   47 #define UDF_TYPE1_MAP15                 0x1511U
   48 #define UDF_VIRTUAL_MAP15               0x1512U
   49 #define UDF_VIRTUAL_MAP20               0x2012U
   50 #define UDF_SPARABLE_MAP15              0x1522U
   51 #define UDF_METADATA_MAP25              0x2511U
   52 
   53 #define UDF_INVALID_MODE                ((umode_t)-1)
   54 
   55 #pragma pack(1) /* XXX(hch): Why?  This file just defines in-core structures */
   56 
   57 #define MF_DUPLICATE_MD         0x01
   58 #define MF_MIRROR_FE_LOADED     0x02
   59 
   60 struct udf_meta_data {
   61         __u32   s_meta_file_loc;
   62         __u32   s_mirror_file_loc;
   63         __u32   s_bitmap_file_loc;
   64         __u32   s_alloc_unit_size;
   65         __u16   s_align_unit_size;
   66         int     s_flags;
   67         struct inode *s_metadata_fe;
   68         struct inode *s_mirror_fe;
   69         struct inode *s_bitmap_fe;
   70 };
   71 
   72 struct udf_sparing_data {
   73         __u16   s_packet_len;
   74         struct buffer_head *s_spar_map[4];
   75 };
   76 
   77 struct udf_virtual_data {
   78         __u32   s_num_entries;
   79         __u16   s_start_offset;
   80 };
   81 
   82 struct udf_bitmap {
   83         __u32                   s_extLength;
   84         __u32                   s_extPosition;
   85         __u16                   s_nr_groups;
   86         struct buffer_head      **s_block_bitmap;
   87 };
   88 
   89 struct udf_part_map {
   90         union {
   91                 struct udf_bitmap       *s_bitmap;
   92                 struct inode            *s_table;
   93         } s_uspace;
   94         union {
   95                 struct udf_bitmap       *s_bitmap;
   96                 struct inode            *s_table;
   97         } s_fspace;
   98         __u32   s_partition_root;
   99         __u32   s_partition_len;
  100         __u16   s_partition_type;
  101         __u16   s_partition_num;
  102         union {
  103                 struct udf_sparing_data s_sparing;
  104                 struct udf_virtual_data s_virtual;
  105                 struct udf_meta_data s_metadata;
  106         } s_type_specific;
  107         __u32   (*s_partition_func)(struct super_block *, __u32, __u16, __u32);
  108         __u16   s_volumeseqnum;
  109         __u16   s_partition_flags;
  110 };
  111 
  112 #pragma pack()
  113 
  114 struct udf_sb_info {
  115         struct udf_part_map     *s_partmaps;
  116         __u8                    s_volume_ident[32];
  117 
  118         /* Overall info */
  119         __u16                   s_partitions;
  120         __u16                   s_partition;
  121 
  122         /* Sector headers */
  123         __s32                   s_session;
  124         __u32                   s_anchor;
  125         __u32                   s_last_block;
  126 
  127         struct buffer_head      *s_lvid_bh;
  128 
  129         /* Default permissions */
  130         umode_t                 s_umask;
  131         kgid_t                  s_gid;
  132         kuid_t                  s_uid;
  133         umode_t                 s_fmode;
  134         umode_t                 s_dmode;
  135         /* Lock protecting consistency of above permission settings */
  136         rwlock_t                s_cred_lock;
  137 
  138         /* Root Info */
  139         struct timespec         s_record_time;
  140 
  141         /* Fileset Info */
  142         __u16                   s_serial_number;
  143 
  144         /* highest UDF revision we have recorded to this media */
  145         __u16                   s_udfrev;
  146 
  147         /* Miscellaneous flags */
  148         unsigned long           s_flags;
  149 
  150         /* Encoding info */
  151         struct nls_table        *s_nls_map;
  152 
  153         /* VAT inode */
  154         struct inode            *s_vat_inode;
  155 
  156         struct mutex            s_alloc_mutex;
  157         /* Protected by s_alloc_mutex */
  158         unsigned int            s_lvid_dirty;
  159 };
  160 
  161 static inline struct udf_sb_info *UDF_SB(struct super_block *sb)
  162 {
  163         return sb->s_fs_info;
  164 }
  165 
  166 struct logicalVolIntegrityDescImpUse *udf_sb_lvidiu(struct udf_sb_info *sbi);
  167 
  168 int udf_compute_nr_groups(struct super_block *sb, u32 partition);
  169 
  170 static inline int UDF_QUERY_FLAG(struct super_block *sb, int flag)
  171 {
  172         return test_bit(flag, &UDF_SB(sb)->s_flags);
  173 }
  174 
  175 static inline void UDF_SET_FLAG(struct super_block *sb, int flag)
  176 {
  177         set_bit(flag, &UDF_SB(sb)->s_flags);
  178 }
  179 
  180 static inline void UDF_CLEAR_FLAG(struct super_block *sb, int flag)
  181 {
  182         clear_bit(flag, &UDF_SB(sb)->s_flags);
  183 }
  184 
  185 #endif /* __LINUX_UDF_SB_H */

Cache object: d2a7e43bfe62e6fdd5f16b8125a49799


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.