Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * udf_fs_sb.h | |
3 | * | |
4 | * This include file is for the Linux kernel/module. | |
5 | * | |
1da177e4 LT |
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 <asm/semaphore.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 | ||
27 | struct udf_sparing_data | |
28 | { | |
29 | __u16 s_packet_len; | |
30 | struct buffer_head *s_spar_map[4]; | |
31 | }; | |
32 | ||
33 | struct udf_virtual_data | |
34 | { | |
35 | __u32 s_num_entries; | |
36 | __u16 s_start_offset; | |
37 | }; | |
38 | ||
39 | struct 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 | ||
47 | struct 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 | ||
75 | struct 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 semaphore s_alloc_sem; | |
115 | }; | |
116 | ||
117 | #endif /* _UDF_FS_SB_H */ |