⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udf_167.h

📁 这是一个SIGMA方案的PMP播放器的UCLINUX程序,可播放DVD,VCD,CD MP3...有很好的参考价值.
💻 H
📖 第 1 页 / 共 2 页
字号:
#if !defined(_LINUX_UDF_167_H)#define _LINUX_UDF_167_H/* * udf_167.h * * DESCRIPTION *	Definitions from the ECMA 167 standard. *	http://www.ecma.ch/ * *	These abbreviations are used to keep the symbols short: *		Alloc	Allocation *		App	Application *		Attr	Attribute *		Char	Characters *		Desc	Descriptor *		Descs	Descriptors *		Ext	Extent *		Ident	Identifier *		Imp	Implementation *		Lvl	Level *		Max	Maximum *		Num	Number *		Ptr	Pointer *		Seq	Sequence *		Std	Standard *		Struct	Structure *		Vol	Volume *	The symbols are otherwise identical to the standard, and the *	sections of the standard to refer to are indicated. * * CONTACTS *	E-mail regarding any portion of the Linux UDF file system should be *	directed to the development team mailing list (run by majordomo): *		linux_udf@hpesjro.fc.hp.com * * 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. * * HISTORY *	July 12, 1997 - Andrew E. Mileski *	Adapted from the ECMA-167 standard. * * 10/2/98 dgb	Adaptation * 10/4/98 	Changes by HJA Sandkuyl * 10/7/98	Changed FILE_EXISTENCE to FILE_HIDDEN, per UDF 2.0 spec * 11/26/98	Modifed some entries for UDF 1.5/2.0 * 11/26/98 bf  Fixed typos, non-linux types, more structures * 12/5/98 dgb  Adjusted structure and content of include files. */#ifdef __KERNEL__#include <linux/types.h>#define Uint8	__u8#define Sint8	__s8#define Uint16	__u16#define Sint16	__s16#define Uint32	__u32#define Sint32	__s32#define Uint64	__u64#define Sint64	__s64typedef Uint8	dstring;#else#define Uint8	unsigned char#define Sint8	char#define Uint16	unsigned short#define Sint16	short#define Uint32	unsigned int#define Sint32	int#define Uint64	unsigned long long#define Sint64	long longtypedef Uint8	dstring;#endif/* make sure all structures are packed! */#pragma pack(1)/* CS0 Charspec (ECMA 167 1/7.2.1) */typedef struct {	Uint8 charSetType;	Uint8 charSetInfo[63];} charspec;/* Timestamp (ECMA 167 1/7.3) */typedef struct {	Uint16 typeAndTimezone;	Uint16 year;	Uint8 month;	Uint8 day;	Uint8 hour;	Uint8 minute;	Uint8 second;	Uint8 centiseconds;	Uint8 hundredsOfMicroseconds;	Uint8 microseconds;} timestamp;/* Timestamp types (ECMA 167 1/7.3.1) */#define TIMESTAMP_TYPE_CUT		0x0000U#define TIMESTAMP_TYPE_LOCAL		0x0001U#define TIMESTAMP_TYPE_AGREEMENT	0x0002U/* Entity Identifier (ECMA 167 1/7.4) */typedef struct {	Uint8 flags;	Uint8 ident[23];	Uint8 identSuffix[8];} EntityID;#define regid EntityID/* Entity identifier flags (ECMA 167 1/7.4.1) */#define ENTITYID_FLAGS_DIRTY		0x01U#define ENTITYID_FLAGS_PROTECTED	0x02U/* Volume Structure Descriptor (ECMA 167 2/9.1) */#define STD_ID_LEN	5struct VolStructDesc {	Uint8 structType;	Uint8 stdIdent[STD_ID_LEN];	Uint8 structVersion;	Uint8 structData[2041];};/* Std structure identifiers (ECMA 167 2/9.1.2) */#define STD_ID_BEA01	"BEA01"#define STD_ID_BOOT2	"BOOT2"#define STD_ID_CD001	"CD001"#define STD_ID_CDW02	"CDW02"#define STD_ID_NSR02	"NSR02"#define STD_ID_NSR03	"NSR03"#define STD_ID_TEA01	"TEA01"/* Beginning Extended Area Descriptor (ECMA 167 2/9.2) */struct BeginningExtendedAreaDesc {	Uint8 structType;	Uint8 stdIdent[STD_ID_LEN];	Uint8 structVersion;	Uint8 structData[2041];};/* Terminating Extended Area Descriptor (ECMA 167 2/9.3) */struct TerminatingExtendedAreaDesc {	Uint8 structType;	Uint8 stdIdent[STD_ID_LEN];	Uint8 structVersion;	Uint8 structData[2041];};/* Boot Descriptor (ECMA 167 2/9.4) */struct BootDesc {	Uint8 structType;	Uint8 stdIdent[STD_ID_LEN];	Uint8 structVersion;	Uint8 reserved1;	EntityID architectureType;	EntityID bootIdent;	Uint32 bootExtLocation;	Uint32 bootExtLength;	Uint64 loadAddress;	Uint64 startAddress;	timestamp descCreationDateAndTime;	Uint16 flags;	Uint8 reserved2[32];	Uint8 bootUse[1906];};/* Boot flags (ECMA 167 2/9.4.12) */#define BOOT_FLAGS_ERASE	1/* Extent Descriptor (ECMA 167 3/7.1) */typedef struct {	Uint32 extLength;	Uint32 extLocation;} extent_ad;/* Descriptor Tag (ECMA 167 3/7.2) */typedef struct {	Uint16 tagIdent;	Uint16 descVersion;	Uint8 tagChecksum;	Uint8 reserved;	Uint16 tagSerialNum;	Uint16 descCRC;	Uint16 descCRCLength;	Uint32 tagLocation;} tag;/* Tag Identifiers (ECMA 167 3/7.2.1) */#define TID_UNUSED_DESC			0x0000U#define TID_PRIMARY_VOL_DESC		0x0001U#define TID_ANCHOR_VOL_DESC_PTR		0x0002U#define TID_VOL_DESC_PTR		0x0003U#define TID_IMP_USE_VOL_DESC		0x0004U#define TID_PARTITION_DESC		0x0005U#define TID_LOGICAL_VOL_DESC		0x0006U#define TID_UNALLOC_SPACE_DESC		0x0007U#define TID_TERMINATING_DESC		0x0008U#define TID_LOGICAL_VOL_INTEGRITY_DESC	0x0009U/* Tag Identifiers (ECMA 167 4/7.2.1) */#define TID_FILE_SET_DESC		0x0100U#define TID_FILE_IDENT_DESC		0x0101U#define TID_ALLOC_EXTENT_DESC		0x0102U#define TID_INDIRECT_ENTRY		0x0103U#define TID_TERMINAL_ENTRY		0x0104U#define TID_FILE_ENTRY			0x0105U#define TID_EXTENDED_ATTRE_HEADER_DESC	0x0106U#define TID_UNALLOCATED_SPACE_ENTRY	0x0107U#define TID_SPACE_BITMAP_DESC		0x0108U#define TID_PARTITION_INTEGRITY_ENTRY	0x0109U#define TID_EXTENDED_FILE_ENTRY		0x010AU/* NSR Descriptor (ECMA 167 3/9.1) */struct NSRDesc {	Uint8 structType;	Uint8 stdIdent[STD_ID_LEN];	Uint8 structVersion;	Uint8 reserved;	Uint8 structData[2040];};	/* Primary Volume Descriptor (ECMA 167 3/10.1) */struct PrimaryVolDesc {	tag descTag;	Uint32 volDescSeqNum;	Uint32 primaryVolDescNum;	dstring volIdent[32];	Uint16 volSeqNum;	Uint16 maxVolSeqNum;	Uint16 interchangeLvl;	Uint16 maxInterchangeLvl;	Uint32 charSetList;	Uint32 maxCharSetList;	dstring volSetIdent[128];	charspec descCharSet;	charspec explanatoryCharSet;	extent_ad volAbstract;	extent_ad volCopyright;	EntityID appIdent;	timestamp recordingDateAndTime;	EntityID impIdent;	Uint8 impUse[64];	Uint32 predecessorVolDescSeqLocation;	Uint16 flags;	Uint8 reserved[22];};/* Primary volume descriptor flags (ECMA 167 3/10.1.21) */#define VOL_SET_IDENT	1/* Anchor Volume Descriptor Pointer (ECMA 167 3/10.2) */struct AnchorVolDescPtr {	tag descTag;	extent_ad mainVolDescSeqExt;	extent_ad reserveVolDescSeqExt;	Uint8 reserved[480];};/* Volume Descriptor Pointer (ECMA 167 3/10.3) */struct VolDescPtr {	tag descTag;	Uint32 volDescSeqNum;	extent_ad nextVolDescSeqExt;	Uint8 reserved[484];};/* Implementation Use Volume Descriptor (ECMA 167 3/10.4) */struct ImpUseVolDesc {	tag descTag;	Uint32 volDescSeqNum;	EntityID impIdent;	Uint8 impUse[460];};/* Partition Descriptor (ECMA 167 3/10.5) */struct PartitionDesc {	tag descTag;	Uint32 volDescSeqNum;	Uint16 partitionFlags;	Uint16 partitionNumber;	EntityID partitionContents;	Uint8 partitionContentsUse[128];	Uint32 accessType;	Uint32 partitionStartingLocation;	Uint32 partitionLength;	EntityID impIdent;	Uint8 impUse[128];	Uint8 reserved[156];};/* Partition Flags (ECMA 167 3/10.5.3) */#define PARTITION_FLAGS_ALLOC	1/* Partition Contents (ECMA 167 3/10.5.5) */#define PARTITION_CONTENTS_FDC01	"+FDC01"#define PARTITION_CONTENTS_CD001	"+CD001"#define PARTITION_CONTENTS_CDW02	"+CDW02"#define PARTITION_CONTENTS_NSR02	"+NSR02"#define PARTITION_CONTENTS_NSR03	"+NSR03"/* Partition Access Types (ECMA 167 3/10.5.7) */#define PARTITION_ACCESS_NONE	0#define PARTITION_ACCESS_R	1#define PARTITION_ACCESS_WO	2#define PARTITION_ACCESS_RW	3#define PARTITION_ACCESS_OW	4/* Logical Volume Descriptor (ECMA 167 3/10.6) */struct LogicalVolDesc {	tag descTag;	Uint32 volDescSeqNum;	charspec descCharSet;	dstring logicalVolIdent[128];	Uint32 logicalBlockSize;	EntityID domainIdent;	Uint8 logicalVolContentsUse[16]; /* used to find fileset */	Uint32 mapTableLength;	Uint32 numPartitionMaps;	EntityID impIdent;	Uint8 impUse[128];	extent_ad integritySeqExt;	Uint8 partitionMaps[0];};/* Generic Partition Map (ECMA 167 3/10.7.1) */struct GenericPartitionMap {	Uint8 partitionMapType;	Uint8 partitionMapLength;	Uint8 partitionMapping[0];};/* Partition Map Type (ECMA 167 3/10.7.1.1) */#define PARTITION_MAP_TYPE_NONE		0#define PARTITION_MAP_TYPE_1		1#define PARTITION_MAP_TYPE_2		2/* Type 1 Partition Map (ECMA 167 3/10.7.2) */struct GenericPartitionMap1 {	Uint8 partitionMapType;	Uint8 partitionMapLength;	Uint16 volSeqNum;	Uint16 partitionNum;};/* Type 2 Partition Map (ECMA 167 3/10.7.3) */struct GenericPartitionMap2 {	Uint8 partitionMapType; /* 2 */	Uint8 partitionMapLength; 	Uint8 partitionIdent[62];};/* Unallocated Space Descriptor (ECMA 167 3/10.8) */struct UnallocatedSpaceDesc {	tag descTag;	Uint32 volDescSeqNum;	Uint32 numAllocDescs;	extent_ad allocDescs[0];};/* Terminating Descriptor (ECMA 3/10.9) */struct TerminatingDesc {	tag descTag;	Uint8 reserved[496];};struct GenericDesc{        tag descTag;        Uint32 volDescSeqNum;};/* Logical Volume Integrity Descriptor (ECMA 167 3/10.10) */struct LogicalVolIntegrityDesc {	tag descTag;	timestamp recordingDateAndTime;	Uint32 integrityType;	extent_ad nextIntegrityExt;	Uint8 logicalVolContentsUse[32];	Uint32 numOfPartitions;	Uint32 lengthOfImpUse;	Uint32 freeSpaceTable[0];	Uint32 sizeTable[0];	Uint8 impUse[0];};/* Integrity Types (ECMA 167 3/10.10.3) */#define INTEGRITY_TYPE_OPEN	0#define INTEGRITY_TYPE_CLOSE	1/* Recorded Address (ECMA 167 4/7.1) */typedef struct {	Uint32 logicalBlockNum;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -