linux/include/linux/udf_fs_sb.h
<<
>>
Prefs
   1/*
   2 * udf_fs_sb.h
   3 * 
   4 * This include file is for the Linux kernel/module.
   5 *
   6 * COPYRIGHT
   7 *      This file is distributed under the terms of the GNU General Public
   8 *      License (GPL). Copies of the GPL can be obtained from:
   9 *              ftp://prep.ai.mit.edu/pub/gnu/GPL
  10 *      Each contributing author retains all rights to their own work.
  11 */
  12
  13#ifndef _UDF_FS_SB_H
  14#define _UDF_FS_SB_H 1
  15
  16#include <linux/mutex.h>
  17
  18#pragma pack(1)
  19
  20#define UDF_MAX_BLOCK_LOADED    8
  21
  22#define UDF_TYPE1_MAP15                 0x1511U
  23#define UDF_VIRTUAL_MAP15               0x1512U
  24#define UDF_VIRTUAL_MAP20               0x2012U
  25#define UDF_SPARABLE_MAP15              0x1522U
  26
  27struct udf_sparing_data
  28{
  29        __u16   s_packet_len;
  30        struct buffer_head *s_spar_map[4];
  31};
  32
  33struct udf_virtual_data
  34{
  35        __u32   s_num_entries;
  36        __u16   s_start_offset;
  37};
  38
  39struct udf_bitmap
  40{
  41        __u32                   s_extLength;
  42        __u32                   s_extPosition;
  43        __u16                   s_nr_groups;
  44        struct buffer_head      **s_block_bitmap;
  45};
  46
  47struct udf_part_map
  48{
  49        union
  50        {
  51                struct udf_bitmap       *s_bitmap;
  52                struct inode            *s_table;
  53        } s_uspace;
  54        union
  55        {
  56                struct udf_bitmap       *s_bitmap;
  57                struct inode            *s_table;
  58        } s_fspace;
  59        __u32   s_partition_root;
  60        __u32   s_partition_len;
  61        __u16   s_partition_type;
  62        __u16   s_partition_num;
  63        union
  64        {
  65                struct udf_sparing_data s_sparing;
  66                struct udf_virtual_data s_virtual;
  67        } s_type_specific;
  68        __u32   (*s_partition_func)(struct super_block *, __u32, __u16, __u32);
  69        __u16   s_volumeseqnum;
  70        __u16   s_partition_flags;
  71};
  72
  73#pragma pack()
  74
  75struct udf_sb_info
  76{
  77        struct udf_part_map     *s_partmaps;
  78        __u8                    s_volident[32];
  79
  80        /* Overall info */
  81        __u16                   s_partitions;
  82        __u16                   s_partition;
  83
  84        /* Sector headers */
  85        __s32                   s_session;
  86        __u32                   s_anchor[4];
  87        __u32                   s_lastblock;
  88
  89        struct buffer_head      *s_lvidbh;
  90
  91        /* Default permissions */
  92        mode_t                  s_umask;
  93        gid_t                   s_gid;
  94        uid_t                   s_uid;
  95
  96        /* Root Info */
  97        struct timespec         s_recordtime;
  98
  99        /* Fileset Info */
 100        __u16                   s_serialnum;
 101
 102        /* highest UDF revision we have recorded to this media */
 103        __u16                   s_udfrev;
 104
 105        /* Miscellaneous flags */
 106        __u32                   s_flags;
 107
 108        /* Encoding info */
 109        struct nls_table        *s_nls_map;
 110
 111        /* VAT inode */
 112        struct inode            *s_vat;
 113
 114        struct mutex            s_alloc_mutex;
 115};
 116
 117#endif /* _UDF_FS_SB_H */
 118