udf_fs_sb.h 2.1 KB
Newer Older
L
Linus Torvalds 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/*
 * udf_fs_sb.h
 * 
 * This include file is for the Linux kernel/module.
 *
 * COPYRIGHT
 *	This file is distributed under the terms of the GNU General Public
 *	License (GPL). Copies of the GPL can be obtained from:
 *		ftp://prep.ai.mit.edu/pub/gnu/GPL
 *	Each contributing author retains all rights to their own work.
 */

#ifndef _UDF_FS_SB_H
#define _UDF_FS_SB_H 1

I
Ingo Molnar 已提交
16
#include <linux/mutex.h>
L
Linus Torvalds 已提交
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77

#pragma pack(1)

#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

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
{
	__u32			s_extLength;
	__u32			s_extPosition;
	__u16			s_nr_groups;
	struct buffer_head 	**s_block_bitmap;
};

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;
	} 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;
M
Marcin Slusarz 已提交
78
	__u8			s_volume_ident[32];
L
Linus Torvalds 已提交
79 80 81 82 83 84 85 86

	/* Overall info */
	__u16			s_partitions;
	__u16			s_partition;

	/* Sector headers */
	__s32			s_session;
	__u32			s_anchor[4];
M
Marcin Slusarz 已提交
87
	__u32			s_last_block;
L
Linus Torvalds 已提交
88

M
Marcin Slusarz 已提交
89
	struct buffer_head	*s_lvid_bh;
L
Linus Torvalds 已提交
90 91 92 93 94 95 96

	/* Default permissions */
	mode_t			s_umask;
	gid_t			s_gid;
	uid_t			s_uid;

	/* Root Info */
M
Marcin Slusarz 已提交
97
	struct timespec		s_record_time;
L
Linus Torvalds 已提交
98 99

	/* Fileset Info */
M
Marcin Slusarz 已提交
100
	__u16			s_serial_number;
L
Linus Torvalds 已提交
101 102 103 104 105 106 107 108 109 110 111

	/* highest UDF revision we have recorded to this media */
	__u16			s_udfrev;

	/* Miscellaneous flags */
	__u32			s_flags;

	/* Encoding info */
	struct nls_table	*s_nls_map;

	/* VAT inode */
M
Marcin Slusarz 已提交
112
	struct inode		*s_vat_inode;
L
Linus Torvalds 已提交
113

I
Ingo Molnar 已提交
114
	struct mutex		s_alloc_mutex;
L
Linus Torvalds 已提交
115 116 117
};

#endif /* _UDF_FS_SB_H */