1 /* 2 * udf_fs_sb.h 3 * 4 * This include file is for the Linux kernel/module. 5 * 6 * CONTACTS 7 * E-mail regarding any portion of the Linux UDF file system should be 8 * directed to the development team mailing list (run by majordomo): 9 * linux_udf@hpesjro.fc.hp.com 10 * 11 * COPYRIGHT 12 * This file is distributed under the terms of the GNU General Public 13 * License (GPL). Copies of the GPL can be obtained from: 14 * ftp://prep.ai.mit.edu/pub/gnu/GPL 15 * Each contributing author retains all rights to their own work. 16 */ 17 18 #ifndef _UDF_FS_SB_H 19 #define _UDF_FS_SB_H 1 20 21 #pragma pack(1) 22 23 #define UDF_MAX_BLOCK_LOADED 8 24 25 #define UDF_TYPE1_MAP15 0x1511U 26 #define UDF_VIRTUAL_MAP15 0x1512U 27 #define UDF_VIRTUAL_MAP20 0x2012U 28 #define UDF_SPARABLE_MAP15 0x1522U 29 30 struct udf_sparing_data 31 { 32 __u16 s_packet_len; 33 struct buffer_head *s_spar_map[4]; 34 }; 35 36 struct udf_virtual_data 37 { 38 __u32 s_num_entries; 39 __u16 s_start_offset; 40 }; 41 42 struct udf_bitmap 43 { 44 __u32 s_extLength; 45 __u32 s_extPosition; 46 __u16 s_nr_groups; 47 struct buffer_head **s_block_bitmap; 48 }; 49 50 struct udf_part_map 51 { 52 union 53 { 54 struct udf_bitmap *s_bitmap; 55 struct inode *s_table; 56 } s_uspace; 57 union 58 { 59 struct udf_bitmap *s_bitmap; 60 struct inode *s_table; 61 } s_fspace; 62 __u32 s_partition_root; 63 __u32 s_partition_len; 64 __u16 s_partition_type; 65 __u16 s_partition_num; 66 union 67 { 68 struct udf_sparing_data s_sparing; 69 struct udf_virtual_data s_virtual; 70 } s_type_specific; 71 __u32 (*s_partition_func)(struct super_block *, __u32, __u16, __u32); 72 __u16 s_volumeseqnum; 73 __u16 s_partition_flags; 74 }; 75 76 #pragma pack() 77 78 struct udf_sb_info 79 { 80 struct udf_part_map *s_partmaps; 81 __u8 s_volident[32]; 82 83 /* Overall info */ 84 __u16 s_partitions; 85 __u16 s_partition; 86 87 /* Sector headers */ 88 __s32 s_session; 89 __u32 s_anchor[4]; 90 __u32 s_lastblock; 91 92 struct buffer_head *s_lvidbh; 93 94 /* Default permissions */ 95 mode_t s_umask; 96 gid_t s_gid; 97 uid_t s_uid; 98 99 /* Root Info */ 100 time_t s_recordtime; 101 102 /* Fileset Info */ 103 __u16 s_serialnum; 104 105 /* highest UDF revision we have recorded to this media */ 106 __u16 s_udfrev; 107 108 /* Miscellaneous flags */ 109 __u32 s_flags; 110 111 /* Encoding info */ 112 struct nls_table *s_nls_map; 113 114 /* VAT inode */ 115 struct inode *s_vat; 116 }; 117 118 #endif /* _UDF_FS_SB_H */ 119