| /* |
| * 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 |
| |
| #include <linux/mutex.h> |
| |
| #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; |
| __u8 s_volume_ident[32]; |
| |
| /* Overall info */ |
| __u16 s_partitions; |
| __u16 s_partition; |
| |
| /* Sector headers */ |
| __s32 s_session; |
| __u32 s_anchor[4]; |
| __u32 s_last_block; |
| |
| struct buffer_head *s_lvid_bh; |
| |
| /* Default permissions */ |
| mode_t s_umask; |
| gid_t s_gid; |
| uid_t s_uid; |
| |
| /* 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 */ |
| __u32 s_flags; |
| |
| /* Encoding info */ |
| struct nls_table *s_nls_map; |
| |
| /* VAT inode */ |
| struct inode *s_vat_inode; |
| |
| struct mutex s_alloc_mutex; |
| }; |
| |
| #endif /* _UDF_FS_SB_H */ |