Blame view

fs/udf/udf_sb.h 4.33 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
  #ifndef __LINUX_UDF_SB_H
  #define __LINUX_UDF_SB_H
15aebd286   Christoph Hellwig   udf: move headers...
3
  #include <linux/mutex.h>
f2a6cc1f1   Jan Kara   udf: Convert UDF_...
4
  #include <linux/bitops.h>
2a28900be   Jan Kara   udf: Export super...
5
  #include <linux/magic.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
6

bfb257a59   Jan Kara   udf: Add read-onl...
7
  #define UDF_MAX_READ_VERSION		0x0250
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  #define UDF_MAX_WRITE_VERSION		0x0201
  
  #define UDF_FLAG_USE_EXTENDED_FE	0
  #define UDF_VERS_USE_EXTENDED_FE	0x0200
  #define UDF_FLAG_USE_STREAMS		1
  #define UDF_VERS_USE_STREAMS		0x0200
  #define UDF_FLAG_USE_SHORT_AD		2
  #define UDF_FLAG_USE_AD_IN_ICB		3
  #define UDF_FLAG_USE_FILE_CTIME_EA	4
  #define UDF_FLAG_STRICT			5
  #define UDF_FLAG_UNDELETE		6
  #define UDF_FLAG_UNHIDE			7
  #define UDF_FLAG_VARCONV		8
  #define UDF_FLAG_NLS_MAP		9
  #define UDF_FLAG_UTF8			10
28de7948a   Cyrill Gorcunov   UDF: coding style...
23
24
  #define UDF_FLAG_UID_FORGET     11    /* save -1 for uid to disk */
  #define UDF_FLAG_UID_IGNORE     12    /* use sb uid instead of on disk uid */
4d6660eb3   Phillip Susi   [PATCH] udf: fix ...
25
26
  #define UDF_FLAG_GID_FORGET     13
  #define UDF_FLAG_GID_IGNORE     14
ca76d2d80   Cyrill Gorcunov   UDF: fix UID and ...
27
28
  #define UDF_FLAG_UID_SET	15
  #define UDF_FLAG_GID_SET	16
6da80894c   Miklos Szeredi   mount options: fi...
29
30
  #define UDF_FLAG_SESSION_SET	17
  #define UDF_FLAG_LASTBLOCK_SET	18
1197e4dfc   Clemens Ladisch   udf: use hardware...
31
  #define UDF_FLAG_BLOCKSIZE_SET	19
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
32
33
34
35
36
37
38
39
40
  
  #define UDF_PART_FLAG_UNALLOC_BITMAP	0x0001
  #define UDF_PART_FLAG_UNALLOC_TABLE	0x0002
  #define UDF_PART_FLAG_FREED_BITMAP	0x0004
  #define UDF_PART_FLAG_FREED_TABLE	0x0008
  #define UDF_PART_FLAG_READ_ONLY		0x0010
  #define UDF_PART_FLAG_WRITE_ONCE	0x0020
  #define UDF_PART_FLAG_REWRITABLE	0x0040
  #define UDF_PART_FLAG_OVERWRITABLE	0x0080
15aebd286   Christoph Hellwig   udf: move headers...
41
42
43
44
45
46
  #define UDF_MAX_BLOCK_LOADED	8
  
  #define UDF_TYPE1_MAP15			0x1511U
  #define UDF_VIRTUAL_MAP15		0x1512U
  #define UDF_VIRTUAL_MAP20		0x2012U
  #define UDF_SPARABLE_MAP15		0x1522U
bfb257a59   Jan Kara   udf: Add read-onl...
47
  #define UDF_METADATA_MAP25		0x2511U
15aebd286   Christoph Hellwig   udf: move headers...
48

faa17292f   Al Viro   udf: propagate um...
49
  #define UDF_INVALID_MODE		((umode_t)-1)
87bc730c0   Marcin Slusarz   udf: fix default ...
50

15aebd286   Christoph Hellwig   udf: move headers...
51
  #pragma pack(1) /* XXX(hch): Why?  This file just defines in-core structures */
ed47a7d00   Jan Kara   udf: Cleanup meta...
52
53
  #define MF_DUPLICATE_MD		0x01
  #define MF_MIRROR_FE_LOADED	0x02
bfb257a59   Jan Kara   udf: Add read-onl...
54
55
56
57
58
59
  struct udf_meta_data {
  	__u32	s_meta_file_loc;
  	__u32	s_mirror_file_loc;
  	__u32	s_bitmap_file_loc;
  	__u32	s_alloc_unit_size;
  	__u16	s_align_unit_size;
7888824b0   Alden Tondettar   udf: Use correct ...
60
61
62
63
64
  	/*
  	 * Partition Reference Number of the associated physical / sparable
  	 * partition
  	 */
  	__u16   s_phys_partition_ref;
ed47a7d00   Jan Kara   udf: Cleanup meta...
65
  	int	s_flags;
bfb257a59   Jan Kara   udf: Add read-onl...
66
67
68
69
  	struct inode *s_metadata_fe;
  	struct inode *s_mirror_fe;
  	struct inode *s_bitmap_fe;
  };
15aebd286   Christoph Hellwig   udf: move headers...
70
71
72
73
74
75
76
77
78
79
80
  struct udf_sparing_data {
  	__u16	s_packet_len;
  	struct buffer_head *s_spar_map[4];
  };
  
  struct udf_virtual_data {
  	__u32	s_num_entries;
  	__u16	s_start_offset;
  };
  
  struct udf_bitmap {
15aebd286   Christoph Hellwig   udf: move headers...
81
  	__u32			s_extPosition;
89b1f39eb   Jan Kara   udf: Fix bitmap o...
82
  	int			s_nr_groups;
c60305b57   Jan Kara   udf: Make s_block...
83
  	struct buffer_head 	*s_block_bitmap[0];
15aebd286   Christoph Hellwig   udf: move headers...
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
  };
  
  struct udf_part_map {
  	union {
  		struct udf_bitmap	*s_bitmap;
  		struct inode		*s_table;
  	} s_uspace;
  	union {
  		struct udf_bitmap	*s_bitmap;
  		struct inode		*s_table;
  	} s_fspace;
  	__u32	s_partition_root;
  	__u32	s_partition_len;
  	__u16	s_partition_type;
  	__u16	s_partition_num;
  	union {
  		struct udf_sparing_data s_sparing;
  		struct udf_virtual_data s_virtual;
bfb257a59   Jan Kara   udf: Add read-onl...
102
  		struct udf_meta_data s_metadata;
15aebd286   Christoph Hellwig   udf: move headers...
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
  	} s_type_specific;
  	__u32	(*s_partition_func)(struct super_block *, __u32, __u16, __u32);
  	__u16	s_volumeseqnum;
  	__u16	s_partition_flags;
  };
  
  #pragma pack()
  
  struct udf_sb_info {
  	struct udf_part_map	*s_partmaps;
  	__u8			s_volume_ident[32];
  
  	/* Overall info */
  	__u16			s_partitions;
  	__u16			s_partition;
  
  	/* Sector headers */
  	__s32			s_session;
403460051   Jan Kara   udf: Try anchor i...
121
  	__u32			s_anchor;
15aebd286   Christoph Hellwig   udf: move headers...
122
123
124
125
126
  	__u32			s_last_block;
  
  	struct buffer_head	*s_lvid_bh;
  
  	/* Default permissions */
faa17292f   Al Viro   udf: propagate um...
127
  	umode_t			s_umask;
c2ba138a2   Eric W. Biederman   userns: Convert t...
128
129
  	kgid_t			s_gid;
  	kuid_t			s_uid;
faa17292f   Al Viro   udf: propagate um...
130
131
  	umode_t			s_fmode;
  	umode_t			s_dmode;
c03cad241   Jan Kara   udf: Protect defa...
132
133
  	/* Lock protecting consistency of above permission settings */
  	rwlock_t		s_cred_lock;
15aebd286   Christoph Hellwig   udf: move headers...
134
135
136
137
138
139
140
141
142
143
144
  
  	/* Root Info */
  	struct timespec		s_record_time;
  
  	/* Fileset Info */
  	__u16			s_serial_number;
  
  	/* highest UDF revision we have recorded to this media */
  	__u16			s_udfrev;
  
  	/* Miscellaneous flags */
f2a6cc1f1   Jan Kara   udf: Convert UDF_...
145
  	unsigned long		s_flags;
15aebd286   Christoph Hellwig   udf: move headers...
146
147
148
149
150
151
152
153
  
  	/* Encoding info */
  	struct nls_table	*s_nls_map;
  
  	/* VAT inode */
  	struct inode		*s_vat_inode;
  
  	struct mutex		s_alloc_mutex;
146bca72c   Jan Kara   udf: Don't write ...
154
155
  	/* Protected by s_alloc_mutex */
  	unsigned int		s_lvid_dirty;
15aebd286   Christoph Hellwig   udf: move headers...
156
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
157
158
159
160
  static inline struct udf_sb_info *UDF_SB(struct super_block *sb)
  {
  	return sb->s_fs_info;
  }
69d75671d   Jan Kara   udf: Fortify LVID...
161
  struct logicalVolIntegrityDescImpUse *udf_sb_lvidiu(struct super_block *sb);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
162

883cb9d18   Marcin Slusarz   udf: move calcula...
163
  int udf_compute_nr_groups(struct super_block *sb, u32 partition);
f2a6cc1f1   Jan Kara   udf: Convert UDF_...
164
165
166
167
168
169
170
171
172
173
174
175
176
177
  static inline int UDF_QUERY_FLAG(struct super_block *sb, int flag)
  {
  	return test_bit(flag, &UDF_SB(sb)->s_flags);
  }
  
  static inline void UDF_SET_FLAG(struct super_block *sb, int flag)
  {
  	set_bit(flag, &UDF_SB(sb)->s_flags);
  }
  
  static inline void UDF_CLEAR_FLAG(struct super_block *sb, int flag)
  {
  	clear_bit(flag, &UDF_SB(sb)->s_flags);
  }
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
178

28de7948a   Cyrill Gorcunov   UDF: coding style...
179
  #endif /* __LINUX_UDF_SB_H */