📄 udf_167.h
字号:
Uint16 partitionReferenceNum;} lb_addr;/* Extent interpretation (ECMA 167 4/14.14.1.1) */#define EXTENT_RECORDED_ALLOCATED 0x00#define EXTENT_NOT_RECORDED_ALLOCATED 0x01#define EXTENT_NOT_RECORDED_NOT_ALLOCATED 0x02#define EXTENT_NEXT_EXTENT_ALLOCDECS 0x03/* Long Allocation Descriptor (ECMA 167 4/14.14.2) */typedef struct { Uint32 extLength; lb_addr extLocation; Uint8 impUse[6];} long_ad; /* upper 2 bits of extLength indicate type *//* File Set Descriptor (ECMA 167 4/14.1) */struct FileSetDesc { tag descTag; timestamp recordingDateAndTime; Uint16 interchangeLvl; Uint16 maxInterchangeLvl; Uint32 charSetList; Uint32 maxCharSetList; Uint32 fileSetNum; Uint32 fileSetDescNum; charspec logicalVolIdentCharSet; dstring logicalVolIdent[128]; charspec fileSetCharSet; dstring fileSetIdent[32]; dstring copyrightFileIdent[32]; dstring abstractFileIdent[32]; long_ad rootDirectoryICB; EntityID domainIdent; long_ad nextExt; long_ad streamDirectoryICB; Uint8 reserved[32];};/* Short Allocation Descriptor (ECMA 167 4/14.14.1) */typedef struct { Uint32 extLength; Uint32 extPosition;} short_ad;/* Partition Header Descriptor (ECMA 167 4/14.3) */struct PartitionHeaderDesc { short_ad unallocatedSpaceTable; short_ad unallocatedSpaceBitmap; short_ad partitionIntegrityTable; short_ad freedSpaceTable; short_ad freedSpaceBitmap; Uint8 reserved[88];};/* File Identifier Descriptor (ECMA 167 4/14.4) */struct FileIdentDesc{ tag descTag; Uint16 fileVersionNum; /* 1 */ Uint8 fileCharacteristics; Uint8 lengthFileIdent; long_ad icb; Uint16 lengthOfImpUse; Uint8 impUse[0]; Uint8 fileIdent[0]; Uint8 padding[0];};/* File Characteristics (ECMA 167 4/14.4.3) */#define FILE_HIDDEN 1#define FILE_DIRECTORY 2#define FILE_DELETED 4#define FILE_PARENT 8#define FILE_METADATA 0x10 /* UDF 2.0 *//* Allocation Ext Descriptor (ECMA 167 4/14.5) */struct AllocExtDesc{ tag descTag; Uint32 previousAllocExtLocation; Uint32 lengthAllocDescs;};/* ICB Tag (ECMA 167 4/14.6) */typedef struct { Uint32 priorRecordedNumDirectEntries; Uint16 strategyType; Uint16 strategyParameter; Uint16 numEntries; Uint8 reserved; Uint8 fileType; lb_addr parentICBLocation; Uint16 flags;} icbtag;/* ICB File Type (ECMA 167 4/14.6.6) */#define FILE_TYPE_NONE 0x00U#define FILE_TYPE_UNALLOC 0x01U#define FILE_TYPE_INTEGRITY 0x02U#define FILE_TYPE_INDIRECT 0x03U#define FILE_TYPE_DIRECTORY 0x04U#define FILE_TYPE_REGULAR 0x05U#define FILE_TYPE_BLOCK 0x06U#define FILE_TYPE_CHAR 0x07U#define FILE_TYPE_EXTENDED 0x08U#define FILE_TYPE_FIFO 0x09U#define FILE_TYPE_SOCKET 0x0aU#define FILE_TYPE_TERMINAL 0x0bU#define FILE_TYPE_SYMLINK 0x0cU#define FILE_TYPE_STREAMDIR 0x0dU /* ECMA 167 4/13 *//* ICB Flags (ECMA 167 4/14.6.8) */#define ICB_FLAG_ALLOC_MASK 0x0007U#define ICB_FLAG_SORTED 0x0008U#define ICB_FLAG_NONRELOCATABLE 0x0010U#define ICB_FLAG_ARCHIVE 0x0020U#define ICB_FLAG_SETUID 0x0040U#define ICB_FLAG_SETGID 0x0080U#define ICB_FLAG_STICKY 0x0100U#define ICB_FLAG_CONTIGUOUS 0x0200U#define ICB_FLAG_SYSTEM 0x0400U#define ICB_FLAG_TRANSFORMED 0x0800U#define ICB_FLAG_MULTIVERSIONS 0x1000U/* ICB Flags Allocation type(ECMA 167 4/14.6.8) */#define ICB_FLAG_AD_SHORT 0#define ICB_FLAG_AD_LONG 1#define ICB_FLAG_AD_EXTENDED 2#define ICB_FLAG_AD_IN_ICB 3/* Indirect Entry (ECMA 167 4/14.7) */struct IndirectEntry { tag descTag; icbtag icbTag; long_ad indirectICB;};/* Terminal Entry (ECMA 167 4/14.8) */struct TerminalEntry { tag descTag; icbtag icbTag;};/* File Entry (ECMA 167 4/14.9) */struct FileEntry { tag descTag; icbtag icbTag; Uint32 uid; Uint32 gid; Uint32 permissions; Uint16 fileLinkCount; Uint8 recordFormat; Uint8 recordDisplayAttr; Uint32 recordLength; Uint64 informationLength; Uint64 logicalBlocksRecorded; timestamp accessTime; timestamp modificationTime; timestamp attrTime; Uint32 checkpoint; long_ad extendedAttrICB; EntityID impIdent; Uint64 uniqueID; /* 0= root, 16- (2^32-1) */ Uint32 lengthExtendedAttr; Uint32 lengthAllocDescs; Uint8 extendedAttr[0]; Uint8 allocDescs[0];};/* File Permissions (ECMA 167 4/14.9.5) */#define PERM_O_EXEC 0x00000001U#define PERM_O_WRITE 0x00000002U#define PERM_O_READ 0x00000004U#define PERM_O_CHATTR 0x00000008U#define PERM_O_DELETE 0x00000010U#define PERM_G_EXEC 0x00000020U#define PERM_G_WRITE 0x00000040U#define PERM_G_READ 0x00000080U#define PERM_G_CHATTR 0x00000100U#define PERM_G_DELETE 0x00000200U#define PERM_U_EXEC 0x00000400U#define PERM_U_WRITE 0x00000800U#define PERM_U_READ 0x00001000U#define PERM_U_CHATTR 0x00002000U#define PERM_U_DELETE 0x00004000U/* File Record Format (ECMA 167 4/14.9.7) */#define RECORD_FMT_NONE 0#define RECORD_FMT_FIXED_PAD 1#define RECORD_FMT_FIXED 2#define RECORD_FMT_VARIABLE8 3#define RECORD_FMT_VARIABLE16 4#define RECORD_FMT_VARIABLE16_MSB 5#define RECORD_FMT_VARIABLE32 6#define RECORD_FMT_PRINT 7#define RECORD_FMT_LF 8#define RECORD_FMT_CR 9#define RECORD_FMT_CRLF 10#define RECORD_FMT_LFCR 10/* Extended Attribute Header Descriptor (ECMA 167 4/14.10.1) */struct ExtendedAttrHeaderDesc { tag descTag; Uint32 impAttrLocation; Uint32 appAttrLocation;};/* Generic Attribute Format (ECMA 4/14.10.2) */struct GenericAttrFormat { Uint32 attrType; Uint8 attrSubtype; Uint8 reserved[3]; Uint32 attrLength; Uint8 attrData[0];};/* Character Set Attribute Format (ECMA 4/14.10.3) */struct CharSetAttrFormat { Uint32 attrType; /* 1 */ Uint8 attrSubtype; /* 1 */ Uint8 reserved[3]; Uint32 attrLength; Uint32 escapeSeqLength; Uint8 charSetType; Uint8 escapeSeq[0];};/* Alternate Permissions (ECMA 167 4/14.10.4) */struct AlternatePermissionsExtendedAttr { Uint32 attrType; /* 3 */ Uint8 attrSubtype; /* 1 */ Uint8 reserved[3]; Uint32 attrLength; Uint16 ownerIdent; Uint16 groupIdent; Uint16 permission;};/* File Times Extended Attribute (ECMA 167 4/14.10.5) */struct FileTimesExtendedAttr { Uint32 attrType; /* 5 */ Uint8 attrSubtype; /* 1 */ Uint8 reserved[3]; Uint32 attrLength; Uint32 dataLength; Uint32 fileTimeExistence; Uint8 fileTimes;};/* FileTimeExistence (ECMA 167 4/14.10.5.6) */#define FTE_CREATION 0#define FTE_DELETION 2#define FTE_EFFECTIVE 3#define FTE_BACKUP 5/* Information Times Extended Attribute (ECMA 167 4/14.10.6) */struct InfoTimesExtendedAttr { Uint32 attrType; /* 6 */ Uint8 attrSubtype; /* 1 */ Uint8 reserved[3]; Uint32 attrLength; Uint32 dataLength; Uint32 infoTimeExistence; Uint8 infoTimes[0];};/* Device Specification Extended Attribute (ECMA 167 4/14.10.7) */struct DeviceSpecificationExtendedAttr { Uint32 attrType; /* 12 */ Uint8 attrSubtype; /* 1 */ Uint8 reserved[3]; Uint32 attrLength; Uint32 impUseLength; Uint32 majorDeviceIdent; Uint32 minorDeviceIdent; Uint8 impUse[0];};/* Implementation Use Extended Attr (ECMA 167 4/14.10.8) */struct ImpUseExtendedAttr { Uint32 attrType; /* 2048 */ Uint8 attrSubtype; /* 1 */ Uint8 reserved[3]; Uint32 attrLength; Uint32 impUseLength; EntityID impIdent; Uint8 impUse[0];};/* Application Use Extended Attribute (ECMA 167 4/14.10.9) */struct AppUseExtendedAttr { Uint32 attrType; /* 65536 */ Uint8 attrSubtype; /* 1 */ Uint8 reserved[3]; Uint32 attrLength; Uint32 appUseLength; EntityID appIdent; Uint8 appUse[0];};#define EXTATTR_CHAR_SET 1#define EXTATTR_ALT_PERMS 3#define EXTATTR_FILE_TIMES 5#define EXTATTR_INFO_TIMES 6#define EXTATTR_DEV_SPEC 12#define EXTATTR_IMP_USE 2048#define EXTATTR_APP_USE 65536/* Unallocated Space Entry (ECMA 167 4/14.11) */struct UnallocatedSpaceEntry { tag descTag; icbtag icbTag; Uint32 lengthAllocDescs; Uint8 allocDescs[0];};/* Space Bitmap Descriptor (ECMA 167 4/14.12) */struct SpaceBitmapDesc { tag descTag; Uint32 numOfBits; Uint32 numOfBytes; Uint8 bitmap[0];};/* Partition Integrity Entry (ECMA 167 4/14.13) */struct PartitionIntegrityEntry { tag descTag; icbtag icbTag; timestamp recordingDateAndTime; Uint8 integrityType; Uint8 reserved[175]; EntityID impIdent; Uint8 impUse[256];};/* Extended Allocation Descriptor (ECMA 167 4/14.14.3) */typedef struct { /* ECMA 167 4/14.14.3 */ Uint32 extLength; Uint32 recordedLength; Uint32 informationLength; lb_addr extLocation;} ext_ad;/* Logical Volume Header Descriptor (ECMA 167 4/14.5) */struct LogicalVolHeaderDesc { Uint64 uniqueID; Uint8 reserved[24];};/* Path Component (ECMA 167 4/14.16.1) */struct PathComponent { Uint8 componentType; Uint8 lengthComponentIdent; Uint16 componentFileVersionNum; dstring componentIdent[0];};/* File Entry (ECMA 167 4/14.17) */struct ExtendedFileEntry { tag descTag; icbtag icbTag; Uint32 uid; Uint32 gid; Uint32 permissions; Uint16 fileLinkCount; Uint8 recordFormat; Uint8 recordDisplayAttr; Uint32 recordLength; Uint64 informationLength; Uint64 objectSize; Uint64 logicalBlocksRecorded; timestamp accessTime; timestamp modificationTime; timestamp createTime; timestamp attrTime; Uint32 checkpoint; Uint32 reserved; long_ad extendedAttrICB; long_ad streamDirectoryICB; EntityID impIdent; Uint64 uniqueID; Uint32 lengthExtendedAttr; Uint32 lengthAllocDescs; Uint8 extendedAttr[0]; Uint8 allocDescs[0];};#pragma pack()#endif /* !defined(_LINUX_UDF_167_H) */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -