2005-04-17 06:20:36 +08:00
|
|
|
/*
|
|
|
|
* 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
|
|
|
|
|
2006-03-23 19:00:44 +08:00
|
|
|
#include <linux/mutex.h>
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
#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;
|
2008-02-08 20:20:30 +08:00
|
|
|
__u8 s_volume_ident[32];
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
/* Overall info */
|
|
|
|
__u16 s_partitions;
|
|
|
|
__u16 s_partition;
|
|
|
|
|
|
|
|
/* Sector headers */
|
|
|
|
__s32 s_session;
|
|
|
|
__u32 s_anchor[4];
|
2008-02-08 20:20:30 +08:00
|
|
|
__u32 s_last_block;
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2008-02-08 20:20:30 +08:00
|
|
|
struct buffer_head *s_lvid_bh;
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
/* Default permissions */
|
|
|
|
mode_t s_umask;
|
|
|
|
gid_t s_gid;
|
|
|
|
uid_t s_uid;
|
|
|
|
|
|
|
|
/* Root Info */
|
2008-02-08 20:20:30 +08:00
|
|
|
struct timespec s_record_time;
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
/* Fileset Info */
|
2008-02-08 20:20:30 +08:00
|
|
|
__u16 s_serial_number;
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
/* 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 */
|
2008-02-08 20:20:30 +08:00
|
|
|
struct inode *s_vat_inode;
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2006-03-23 19:00:44 +08:00
|
|
|
struct mutex s_alloc_mutex;
|
2005-04-17 06:20:36 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* _UDF_FS_SB_H */
|