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