Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

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