Shortten some field names, add udf_ prefixes to aid with namespace

problem; turn logical volume descriptor content use into something
more useable.
This commit is contained in:
rocky
2005-10-17 03:23:04 +00:00
parent 8a3005f2b1
commit a20483cedc

View File

@@ -98,6 +98,7 @@ typedef uint32_t udf_Uint32_t; /*! Section 1/7.1.5 */
typedef uint64_t udf_Uint64_t; /*! Section 1/7.1.7 */ typedef uint64_t udf_Uint64_t; /*! Section 1/7.1.7 */
typedef char udf_dstring; /*! Section 1/7.1.12 */ typedef char udf_dstring; /*! Section 1/7.1.12 */
#define udf_length_mask 0x3fffffff
PRAGMA_BEGIN_PACKED PRAGMA_BEGIN_PACKED
@@ -136,14 +137,14 @@ typedef struct udf_timestamp_s udf_timestamp_t;
/** Entity identifier (ECMA 167r3 1/7.4) */ /** Entity identifier (ECMA 167r3 1/7.4) */
#define UDF_REGID_ID_SIZE 23 #define UDF_REGID_ID_SIZE 23
struct regid_s struct udf_regid_s
{ {
udf_Uint8_t flags; udf_Uint8_t flags;
udf_Uint8_t id[UDF_REGID_ID_SIZE]; udf_Uint8_t id[UDF_REGID_ID_SIZE];
udf_Uint8_t id_suffix[8]; udf_Uint8_t id_suffix[8];
} GNUC_PACKED; } GNUC_PACKED;
typedef struct regid_s regid_t; typedef struct udf_regid_s udf_regid_t;
/** Flags (ECMA 167r3 1/7.4.1) */ /** Flags (ECMA 167r3 1/7.4.1) */
#define ENTITYID_FLAGS_DIRTY 0x00 #define ENTITYID_FLAGS_DIRTY 0x00
@@ -195,8 +196,8 @@ struct boot_desc_s
udf_Uint8_t std_ident[VSD_STD_ID_LEN]; udf_Uint8_t std_ident[VSD_STD_ID_LEN];
udf_Uint8_t struct_version; udf_Uint8_t struct_version;
udf_Uint8_t reserved1; udf_Uint8_t reserved1;
regid_t arch_type; udf_regid_t arch_type;
regid_t boot_ident; udf_regid_t boot_ident;
udf_Uint32_t bool_ext_location; udf_Uint32_t bool_ext_location;
udf_Uint32_t bool_ext_length; udf_Uint32_t bool_ext_length;
udf_Uint64_t load_address; udf_Uint64_t load_address;
@@ -220,19 +221,19 @@ struct extent_ad_s
typedef struct extent_ad_s extent_ad_t; typedef struct extent_ad_s extent_ad_t;
/** Descriptor Tag (ECMA 167r3 3/7.2) */ /** Descriptor Tag (ECMA 167r3 3/7.2) */
struct desc_tag_s struct udf_tag_s
{ {
udf_Uint16_t tag_id; udf_Uint16_t id;
udf_Uint16_t desc_version; udf_Uint16_t desc_version;
udf_Uint8_t cksum; udf_Uint8_t cksum;
udf_Uint8_t reserved; udf_Uint8_t reserved;
udf_Uint16_t i_serial; udf_Uint16_t i_serial;
udf_Uint16_t desc_CRC; udf_Uint16_t desc_CRC;
udf_Uint16_t desc_CRC_len; udf_Uint16_t desc_CRC_len;
udf_Uint32_t tag_loc; udf_Uint32_t loc;
} GNUC_PACKED; } GNUC_PACKED;
typedef struct desc_tag_s desc_tag_t; typedef struct udf_tag_s udf_tag_t;
/** NSR Descriptor (ECMA 167r3 3/9.1) */ /** NSR Descriptor (ECMA 167r3 3/9.1) */
struct NSR_desc_s struct NSR_desc_s
@@ -247,7 +248,7 @@ struct NSR_desc_s
/** Primary Volume Descriptor (ECMA 167r3 3/10.1) */ /** Primary Volume Descriptor (ECMA 167r3 3/10.1) */
struct udf_pvd_s struct udf_pvd_s
{ {
desc_tag_t tag; udf_tag_t tag;
udf_Uint32_t vol_desc_seq_num; udf_Uint32_t vol_desc_seq_num;
udf_Uint32_t primary_vol_desc_num; udf_Uint32_t primary_vol_desc_num;
udf_dstring vol_ident[32]; udf_dstring vol_ident[32];
@@ -262,9 +263,9 @@ struct udf_pvd_s
udf_charspec_t explanatory_charset; udf_charspec_t explanatory_charset;
extent_ad_t vol_abstract; extent_ad_t vol_abstract;
extent_ad_t vol_copyright; extent_ad_t vol_copyright;
regid_t app_ident; udf_regid_t app_ident;
udf_timestamp_t recording_time; udf_timestamp_t recording_time;
regid_t imp_ident; udf_regid_t imp_ident;
udf_Uint8_t imp_use[64]; udf_Uint8_t imp_use[64];
udf_Uint32_t predecessor_vol_desc_seq_location; udf_Uint32_t predecessor_vol_desc_seq_location;
udf_Uint16_t flags; udf_Uint16_t flags;
@@ -279,7 +280,7 @@ typedef struct udf_pvd_s udf_pvd_t;
/** Anchor Volume Descriptor Pointer (ECMA 167r3 3/10.2) */ /** Anchor Volume Descriptor Pointer (ECMA 167r3 3/10.2) */
struct anchor_vol_desc_ptr_s struct anchor_vol_desc_ptr_s
{ {
desc_tag_t tag; udf_tag_t tag;
extent_ad_t main_vol_desc_seq_ext; extent_ad_t main_vol_desc_seq_ext;
extent_ad_t reserve_vol_desc_seq_ext; extent_ad_t reserve_vol_desc_seq_ext;
udf_Uint8_t reserved[480]; udf_Uint8_t reserved[480];
@@ -290,7 +291,7 @@ typedef struct anchor_vol_desc_ptr_s anchor_vol_desc_ptr_t;
/** Volume Descriptor Pointer (ECMA 167r3 3/10.3) */ /** Volume Descriptor Pointer (ECMA 167r3 3/10.3) */
struct vol_desc_ptr_s struct vol_desc_ptr_s
{ {
desc_tag_t tag; udf_tag_t tag;
udf_Uint32_t vol_desc_seq_num; udf_Uint32_t vol_desc_seq_num;
extent_ad_t next_vol_desc_set_ext; extent_ad_t next_vol_desc_set_ext;
udf_Uint8_t reserved[484]; udf_Uint8_t reserved[484];
@@ -299,29 +300,31 @@ struct vol_desc_ptr_s
/** Implementation Use Volume Descriptor (ECMA 167r3 3/10.4) */ /** Implementation Use Volume Descriptor (ECMA 167r3 3/10.4) */
struct imp_use_vol_desc_s struct imp_use_vol_desc_s
{ {
desc_tag_t tag; udf_tag_t tag;
udf_Uint32_t vol_desc_seq_num; udf_Uint32_t vol_desc_seq_num;
regid_t imp_id; udf_regid_t imp_id;
udf_Uint8_t imp_use[460]; udf_Uint8_t imp_use[460];
} GNUC_PACKED; } GNUC_PACKED;
/** Partition Descriptor (ECMA 167r3 3/10.5) */ /** Partition Descriptor (ECMA 167r3 3/10.5) */
struct partition_desc_s struct partition_desc_s
{ {
desc_tag_t tag; udf_tag_t tag;
udf_Uint32_t vol_desc_seq_num; udf_Uint32_t vol_desc_seq_num;
udf_Uint16_t flags; udf_Uint16_t flags;
udf_Uint16_t partition_num; udf_Uint16_t number; /**< Partition number */
regid_t contents; udf_regid_t contents;
udf_Uint8_t contents_use[128]; udf_Uint8_t contents_use[128];
udf_Uint32_t access_type; udf_Uint32_t access_type;
udf_Uint32_t start_loc; udf_Uint32_t start_loc;
udf_Uint32_t part_len; udf_Uint32_t part_len;
regid_t imp_id; udf_regid_t imp_id;
udf_Uint8_t imp_use[128]; udf_Uint8_t imp_use[128];
udf_Uint8_t reserved[156]; udf_Uint8_t reserved[156];
} GNUC_PACKED; } GNUC_PACKED;
typedef struct partition_desc_s partition_desc_t;
/** Partition Flags (ECMA 167r3 3/10.5.3) */ /** Partition Flags (ECMA 167r3 3/10.5.3) */
#define PD_PARTITION_FLAGS_ALLOC 0x0001 #define PD_PARTITION_FLAGS_ALLOC 0x0001
@@ -341,24 +344,58 @@ struct partition_desc_s
#define PD_ACCESS_TYPE_REWRITABLE 0x00000003 #define PD_ACCESS_TYPE_REWRITABLE 0x00000003
#define PD_ACCESS_TYPE_OVERWRITABLE 0x00000004 #define PD_ACCESS_TYPE_OVERWRITABLE 0x00000004
/** Recorded Address (ECMA 167r3 4/7.1) */
struct lb_addr_s
{
udf_Uint32_t lba;
udf_Uint16_t partitionReferenceNum;
} GNUC_PACKED;
typedef struct lb_addr_s lb_addr_t;
/** Short Allocation Descriptor (ECMA 167r3 4/14.14.1) */
struct short_ad_s
{
udf_Uint32_t len;
udf_Uint32_t pos;
} GNUC_PACKED;
typedef struct short_ad_s short_ad_t;
/** Long Allocation Descriptor (ECMA 167r3 4/14.14.2) */
struct long_ad_s
{
udf_Uint32_t len;
lb_addr_t loc;
udf_Uint8_t imp_use[6];
} GNUC_PACKED;
typedef struct long_ad_s long_ad_t;
/** Logical Volume Descriptor (ECMA 167r3 3/10.6) */ /** Logical Volume Descriptor (ECMA 167r3 3/10.6) */
struct logical_vol_desc_s struct logical_vol_desc_s
{ {
desc_tag_t tag; udf_tag_t tag;
udf_Uint32_t seq_num; udf_Uint32_t seq_num;
udf_charspec_t desc_charset; udf_charspec_t desc_charset;
udf_dstring logvol_id[128]; udf_dstring logvol_id[128];
udf_Uint32_t logical_blocksize; udf_Uint32_t logical_blocksize;
regid_t domain_id; udf_regid_t domain_id;
union {
long_ad_t fsd_loc;
udf_Uint8_t logvol_content_use[16];
} lvd_use;
udf_Uint8_t logvol_contents_use[16]; udf_Uint8_t logvol_contents_use[16];
udf_Uint32_t maptable_len; udf_Uint32_t maptable_len;
udf_Uint32_t i_partition_maps; udf_Uint32_t i_partition_maps;
regid_t imp_id; udf_regid_t imp_id;
udf_Uint8_t imp_use[128]; udf_Uint8_t imp_use[128];
extent_ad_t integrity_seq_ext; extent_ad_t integrity_seq_ext;
udf_Uint8_t partition_maps[0]; udf_Uint8_t partition_maps[0];
} GNUC_PACKED; } GNUC_PACKED;
typedef struct logical_vol_desc_s logical_vol_desc_t;
/** Generic Partition Map (ECMA 167r3 3/10.7.1) */ /** Generic Partition Map (ECMA 167r3 3/10.7.1) */
struct generic_partition_map struct generic_partition_map
{ {
@@ -392,7 +429,7 @@ struct generic_partition_map2
/** Unallocated Space Descriptor (ECMA 167r3 3/10.8) */ /** Unallocated Space Descriptor (ECMA 167r3 3/10.8) */
struct unalloc_space_desc_s struct unalloc_space_desc_s
{ {
desc_tag_t tag; udf_tag_t tag;
udf_Uint32_t vol_desc_seq_num; udf_Uint32_t vol_desc_seq_num;
udf_Uint32_t i_alloc_descs; udf_Uint32_t i_alloc_descs;
extent_ad_t allocDescs[0]; extent_ad_t allocDescs[0];
@@ -401,14 +438,14 @@ struct unalloc_space_desc_s
/** Terminating Descriptor (ECMA 167r3 3/10.9) */ /** Terminating Descriptor (ECMA 167r3 3/10.9) */
struct terminating_desc_s struct terminating_desc_s
{ {
desc_tag_t tag; udf_tag_t tag;
udf_Uint8_t reserved[496]; udf_Uint8_t reserved[496];
} GNUC_PACKED; } GNUC_PACKED;
/** Logical Volume Integrity Descriptor (ECMA 167r3 3/10.10) */ /** Logical Volume Integrity Descriptor (ECMA 167r3 3/10.10) */
struct logvol_integrity_desc_s struct logvol_integrity_desc_s
{ {
desc_tag_t tag; udf_tag_t tag;
udf_timestamp_t recording_time; udf_timestamp_t recording_time;
udf_Uint32_t integrity_type; udf_Uint32_t integrity_type;
extent_ad_t next_integrity_ext; extent_ad_t next_integrity_ext;
@@ -424,34 +461,6 @@ struct logvol_integrity_desc_s
#define LVID_INTEGRITY_TYPE_OPEN 0x00000000 #define LVID_INTEGRITY_TYPE_OPEN 0x00000000
#define LVID_INTEGRITY_TYPE_CLOSE 0x00000001 #define LVID_INTEGRITY_TYPE_CLOSE 0x00000001
/** Recorded Address (ECMA 167r3 4/7.1) */
struct lb_addr_s
{
udf_Uint32_t logical_blockNum;
udf_Uint16_t partitionReferenceNum;
} GNUC_PACKED;
typedef struct lb_addr_s lb_addr_t;
/** Short Allocation Descriptor (ECMA 167r3 4/14.14.1) */
struct short_ad_s
{
udf_Uint32_t len;
udf_Uint32_t pos;
} GNUC_PACKED;
typedef struct short_ad_s short_ad_t;
/** Long Allocation Descriptor (ECMA 167r3 4/14.14.2) */
struct long_ad_s
{
udf_Uint32_t len;
lb_addr_t loc;
udf_Uint8_t imp_use[6];
} GNUC_PACKED;
typedef struct long_ad_s long_ad_t;
/** Extended Allocation Descriptor (ECMA 167r3 4/14.14.3) */ /** Extended Allocation Descriptor (ECMA 167r3 4/14.14.3) */
struct ext_ad_s struct ext_ad_s
{ {
@@ -470,7 +479,7 @@ typedef struct ext_ad_s ext_ad_t;
/** File Set Descriptor (ECMA 167r3 4/14.1) */ /** File Set Descriptor (ECMA 167r3 4/14.1) */
struct fileset_desc_s struct fileset_desc_s
{ {
desc_tag_t tag; udf_tag_t tag;
udf_timestamp_t recording_time; udf_timestamp_t recording_time;
udf_Uint16_t interchange_lvl; udf_Uint16_t interchange_lvl;
udf_Uint16_t maxInterchange_lvl; udf_Uint16_t maxInterchange_lvl;
@@ -485,7 +494,7 @@ struct fileset_desc_s
udf_dstring copyright_file_id[32]; udf_dstring copyright_file_id[32];
udf_dstring abstract_file_id[32]; udf_dstring abstract_file_id[32];
long_ad_t root_directory_ICB; long_ad_t root_directory_ICB;
regid_t domain_id; udf_regid_t domain_id;
long_ad_t next_ext; long_ad_t next_ext;
long_ad_t stream_directory_ICB; long_ad_t stream_directory_ICB;
udf_Uint8_t reserved[32]; udf_Uint8_t reserved[32];
@@ -509,7 +518,7 @@ typedef struct partition_header_desc_s partition_header_desc_t;
/** File Identifier Descriptor (ECMA 167r3 4/14.4) */ /** File Identifier Descriptor (ECMA 167r3 4/14.4) */
struct fileIdentDesc struct fileIdentDesc
{ {
desc_tag_t tag; udf_tag_t tag;
udf_Uint16_t file_version_num; udf_Uint16_t file_version_num;
udf_Uint8_t file_characteristics; udf_Uint8_t file_characteristics;
udf_Uint8_t length_file_id; udf_Uint8_t length_file_id;
@@ -537,7 +546,7 @@ struct fileIdentDesc
/** Allocation Ext Descriptor (ECMA 167r3 4/14.5) */ /** Allocation Ext Descriptor (ECMA 167r3 4/14.5) */
struct allocExtDesc struct allocExtDesc
{ {
desc_tag_t tag; udf_tag_t tag;
udf_Uint32_t previous_alloc_ext_loc; udf_Uint32_t previous_alloc_ext_loc;
udf_Uint32_t i_alloc_descs; udf_Uint32_t i_alloc_descs;
} GNUC_PACKED; } GNUC_PACKED;
@@ -605,7 +614,7 @@ typedef struct icbtag_s icbtag_t;
/** Indirect Entry (ECMA 167r3 4/14.7) */ /** Indirect Entry (ECMA 167r3 4/14.7) */
struct indirect_entry_s struct indirect_entry_s
{ {
desc_tag_t tag; udf_tag_t tag;
icbtag_t icb_tag; icbtag_t icb_tag;
long_ad_t indirect_ICB; long_ad_t indirect_ICB;
} GNUC_PACKED; } GNUC_PACKED;
@@ -613,14 +622,14 @@ struct indirect_entry_s
/** Terminal Entry (ECMA 167r3 4/14.8) */ /** Terminal Entry (ECMA 167r3 4/14.8) */
struct terminal_entry_s struct terminal_entry_s
{ {
desc_tag_t tag; udf_tag_t tag;
icbtag_t icb_tag; icbtag_t icb_tag;
} GNUC_PACKED; } GNUC_PACKED;
/** File Entry (ECMA 167r3 4/14.9) */ /** File Entry (ECMA 167r3 4/14.9) */
struct file_entry_s struct file_entry_s
{ {
desc_tag_t tag; udf_tag_t tag;
icbtag_t icb_tag; icbtag_t icb_tag;
udf_Uint32_t uid; udf_Uint32_t uid;
udf_Uint32_t gid; udf_Uint32_t gid;
@@ -636,7 +645,7 @@ struct file_entry_s
udf_timestamp_t attr_time; udf_timestamp_t attr_time;
udf_Uint32_t checkpoint; udf_Uint32_t checkpoint;
long_ad_t ext_attr_ICB; long_ad_t ext_attr_ICB;
regid_t imp_id; udf_regid_t imp_id;
udf_Uint64_t unique_iD; udf_Uint64_t unique_iD;
udf_Uint32_t length_extended_attr; udf_Uint32_t length_extended_attr;
udf_Uint32_t length_alloc_descs; udf_Uint32_t length_alloc_descs;
@@ -689,7 +698,7 @@ struct file_entry_s
/** Extended Attribute Header Descriptor (ECMA 167r3 4/14.10.1) */ /** Extended Attribute Header Descriptor (ECMA 167r3 4/14.10.1) */
struct extended_attr_header_desc_s struct extended_attr_header_desc_s
{ {
desc_tag_t tag; udf_tag_t tag;
udf_Uint32_t imp_attr_location; udf_Uint32_t imp_attr_location;
udf_Uint32_t app_attr_location; udf_Uint32_t app_attr_location;
} GNUC_PACKED; } GNUC_PACKED;
@@ -779,7 +788,7 @@ struct impUseExtAttr
udf_Uint8_t reserved[3]; udf_Uint8_t reserved[3];
udf_Uint32_t attrLength; udf_Uint32_t attrLength;
udf_Uint32_t imp_useLength; udf_Uint32_t imp_useLength;
regid_t imp_id; udf_regid_t imp_id;
udf_Uint8_t imp_use[0]; udf_Uint8_t imp_use[0];
} GNUC_PACKED; } GNUC_PACKED;
@@ -791,7 +800,7 @@ struct appUseExtAttr
udf_Uint8_t reserved[3]; udf_Uint8_t reserved[3];
udf_Uint32_t attrLength; udf_Uint32_t attrLength;
udf_Uint32_t appUseLength; udf_Uint32_t appUseLength;
regid_t app_id; udf_regid_t app_id;
udf_Uint8_t appUse[0]; udf_Uint8_t appUse[0];
} GNUC_PACKED; } GNUC_PACKED;
@@ -807,7 +816,7 @@ struct appUseExtAttr
/** Unallocated Space Entry (ECMA 167r3 4/14.11) */ /** Unallocated Space Entry (ECMA 167r3 4/14.11) */
struct unallocSpaceEntry struct unallocSpaceEntry
{ {
desc_tag_t tag; udf_tag_t tag;
icbtag_t icb_tag; icbtag_t icb_tag;
udf_Uint32_t lengthAllocDescs; udf_Uint32_t lengthAllocDescs;
udf_Uint8_t allocDescs[0]; udf_Uint8_t allocDescs[0];
@@ -816,21 +825,21 @@ struct unallocSpaceEntry
/** Space Bitmap Descriptor (ECMA 167r3 4/14.12) */ /** Space Bitmap Descriptor (ECMA 167r3 4/14.12) */
struct spaceBitmapDesc struct spaceBitmapDesc
{ {
desc_tag_t tag; udf_tag_t tag;
udf_Uint32_t i_bits; udf_Uint32_t i_bits;
udf_Uint32_t i_bytes; udf_Uint32_t i_bytes;
udf_Uint8_t bitmap[0]; udf_Uint8_t bitmap[0];
} GNUC_PACKED; } GNUC_PACKED;
/** Partition Integrity Entry (ECMA 167r3 4/14.13) */ /** Partition Integrity Entry (ECMA 167r3 4/14.13) */
struct partitionIntegrityEntry struct partitionIntegrityEntry
{ {
desc_tag_t tag; udf_tag_t tag;
icbtag_t icb_tag; icbtag_t icb_tag;
udf_timestamp_t recording_time; udf_timestamp_t recording_time;
udf_Uint8_t integrityType; udf_Uint8_t integrityType;
udf_Uint8_t reserved[175]; udf_Uint8_t reserved[175];
regid_t imp_id; udf_regid_t imp_id;
udf_Uint8_t imp_use[256]; udf_Uint8_t imp_use[256];
} GNUC_PACKED; } GNUC_PACKED;
@@ -867,7 +876,7 @@ struct pathComponent
/** File Entry (ECMA 167r3 4/14.17) */ /** File Entry (ECMA 167r3 4/14.17) */
struct extended_file_entry struct extended_file_entry
{ {
desc_tag_t tag; udf_tag_t tag;
icbtag_t icb_tag; icbtag_t icb_tag;
udf_Uint32_t uid; udf_Uint32_t uid;
udf_Uint32_t gid; udf_Uint32_t gid;
@@ -887,7 +896,7 @@ struct extended_file_entry
udf_Uint32_t reserved; udf_Uint32_t reserved;
long_ad_t ext_attr_ICB; long_ad_t ext_attr_ICB;
long_ad_t stream_directory_ICB; long_ad_t stream_directory_ICB;
regid_t imp_id; udf_regid_t imp_id;
udf_Uint64_t unique_ID; udf_Uint64_t unique_ID;
udf_Uint32_t length_extended_attr; udf_Uint32_t length_extended_attr;
udf_Uint32_t length_alloc_descs; udf_Uint32_t length_alloc_descs;