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

📄 udf_udf.h

📁 《嵌入式系统设计与实例开发实验教材二源码》Linux内核移植与编译实验
💻 H
字号:
#if !defined(_LINUX_UDF_UDF_H)#define _LINUX_UDF_UDF_H/* * udf_udf.h * * PURPOSE *	OSTA-UDF(tm) format specification [based on ECMA 167 standard]. *	http://www.osta.org/ * * 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 1, 1997 - Andrew E. Mileski *	Written, tested, and released. * * 10/2/98 dgb	changed UDF_ID_DEVELOPER * 11/26/98 bf  changed UDF_ID_DEVELOPER,  * 12/5/98 dgb  updated include file hierarchy, more UDF definitions *//* based on ECMA 167 structure definitions */#include <linux/udf_167.h>#pragma pack(1)/* -------- Basic types and constants ----------- *//* UDF character set (UDF 1.50 2.1.2) */#define UDF_CHAR_SET_TYPE	0#define UDF_CHAR_SET_INFO	"OSTA Compressed Unicode"#define UDF_ID_DEVELOPER	"*Linux UDFFS" /* UDF 1.02 2.2.6.4 */struct LogicalVolIntegrityDescImpUse{	EntityID	impIdent;	Uint32		numFiles;	Uint32		numDirs;	Uint16		minUDFReadRev;	Uint16		minUDFWriteRev;	Uint16		maxUDFWriteRev;};/* UDF 1.02 2.2.7.2 *//* LVInformation may be present in ImpUseVolDesc.impUse */struct ImpUseVolDescImpUse{	charspec	LVICharset;	dstring		logicalVolIdent[128];	dstring		LVInfo1[36];	dstring		LVInfo2[36];	dstring		LVInfo3[36];	EntityID	impIdent;	Uint8		impUse[128];};struct UdfPartitionMap2{        Uint8           partitionMapType;        Uint8           partitionMapLength;        Uint8           reserved1[2];        EntityID        partIdent;        Uint16          volSeqNum;        Uint16          partitionNum;        Uint8           reserved2[24];};/* UDF 1.5 2.2.8 */struct VirtualPartitionMap{	Uint8		partitionMapType;	/* 2 */	Uint8		partitionMapLength;	/* 64 */	Uint8		reserved1[2];		/* #00 */	EntityID	partIdent;	Uint16		volSeqNum;	Uint16		partitionNum;	Uint8		reserved2[24];		/* #00 */};/* UDF 1.5 2.2.9 */struct SparablePartitionMap{	Uint8		partitionMapType;	/* 2 */	Uint8		partitionMapLength;	/* 64 */	Uint8		reserved1[2];		/* #00 */	EntityID	partIdent;		/* Flags = 0 */						/* Id = UDF_ID_SPARABLE */						/* IdSuf = 2.1.5.3 */	Uint16		volSeqNum;	Uint16		partitionNum;	Uint16		packetLength;		/* 32 */	Uint8		numSparingTables;	Uint8		reserved2[1];		/* #00 */	Uint32		sizeSparingTable;	Uint32		locSparingTable[4];}; /* DVD Copyright Management Info, see UDF 1.02 3.3.4.5.1.2 *//* when ImpUseExtendedAttr.impIdent= "*UDF DVD CGMS Info" */struct DVDCopyrightImpUse {	Uint16 headerChecksum;	Uint8  CGMSInfo;	Uint8  dataType;	Uint8  protectionSystemInfo[4];};/* the impUse of long_ad used in AllocDescs  - UDF 1.02 2.3.10.1 */struct ADImpUse{	Uint16 flags;	Uint8  impUse[4];};/* UDF 1.02 2.3.10.1 */#define UDF_EXTENT_LENGTH_MASK		0x3FFFFFFF#define UDF_EXTENT_FLAG_MASK		0xc0000000#define UDF_EXTENT_FLAG_ERASED		0x40000000/*  * Important!  VirtualAllocationTables are  * very different between 1.5 and 2.0! *//* ----------- 1.5 ------------- *//* UDF 1.5 2.2.10 */#define FILE_TYPE_VAT15		0x0U/* UDF 1.5 2.2.10 - VAT layout: */struct VirutalAllocationTable15 {	Uint32 VirtualSector[0];	EntityID	ident;	Uint32	previousVATICB;   };  /* where number of VirtualSector's is (VATSize-36)/4 *//* ----------- 2.0 ------------- *//* UDF 2.0 2.2.10 */#define FILE_TYPE_VAT20		0xf8U/* UDF 2.0 2.2.10 (different from 1.5!) */struct VirtualAllocationTable20 {	Uint16 lengthHeader;	Uint16 lengthImpUse;	dstring logicalVolIdent[128];	Uint32	previousVatICBLoc;	Uint32  numFIDSFiles;	Uint32  numFIDSDirectories; /* non-parent */	Uint16  minReadRevision;	Uint16	minWriteRevision;	Uint16  maxWriteRevision;	Uint16  reserved;	Uint8	impUse[0];	Uint32  vatEntry[0];};/* ----------- 2.01 ------------- *//* UDF 2.01 6.11 */#define FILE_TYPE_REALTIME	0xf9U/* Sparing maps, see UDF 1.5 2.2.11 */typedef struct {	Uint32  origLocation;	Uint32  mappedLocation;} SparingEntry;/* sparing maps, see UDF 2.0 2.2.11 */struct SparingTable {	tag 	descTag;	EntityID sparingIdent; /* *UDF Sparing Table */	Uint16   reallocationTableLen;	Uint16   reserved;	/* #00 */	Uint32   sequenceNum;	SparingEntry mapEntry[0];};/* Entity Identifiers (UDF 1.50 6.1) */#define	UDF_ID_COMPLIANT	"*OSTA UDF Compliant"#define UDF_ID_LV_INFO		"*UDF LV Info"#define UDF_ID_FREE_EA		"*UDF FreeEASpace"#define UDF_ID_FREE_APP_EA	"*UDF FreeAppEASpace"#define UDF_ID_DVD_CGMS		"*UDF DVD CGMS Info"#define UDF_ID_OS2_EA		"*UDF OS/2 EA"#define UDF_ID_OS2_EA_LENGTH	"*UDF OS/2 EALength"#define UDF_ID_MAC_VOLUME	"*UDF Mac VolumeInfo"#define UDF_ID_MAC_FINDER	"*UDF Mac FinderInfo"#define UDF_ID_MAC_UNIQUE	"*UDF Mac UniqueIDTable"#define UDF_ID_MAC_RESOURCE	"*UDF Mac ResourceFork"#define UDF_ID_VIRTUAL		"*UDF Virtual Partition"#define UDF_ID_SPARABLE		"*UDF Sparable Partition"#define UDF_ID_ALLOC		"*UDF Virtual Alloc Tbl"#define UDF_ID_SPARING		"*UDF Sparing Table"/* Operating System Identifiers (UDF 1.50 6.3) */#define UDF_OS_CLASS_UNDEF	0x00U#define UDF_OS_CLASS_DOS	0x01U#define UDF_OS_CLASS_OS2	0x02U#define UDF_OS_CLASS_MAC	0x03U#define UDF_OS_CLASS_UNIX	0x04U#define UDF_OS_CLASS_WIN95	0x05U#define UDF_OS_CLASS_WINNT	0x06U#define UDF_OS_ID_UNDEF		0x00U#define UDF_OS_ID_DOS		0x00U#define UDF_OS_ID_OS2		0x00U#define UDF_OS_ID_MAC		0x00U#define UDF_OS_ID_UNIX		0x00U#define UDF_OS_ID_WIN95		0x00U#define UDF_OS_ID_WINNT		0x00U#define UDF_OS_ID_AIX		0x01U#define UDF_OS_ID_SOLARIS	0x02U#define UDF_OS_ID_HPUX		0x03U#define UDF_OS_ID_IRIX		0x04U#define UDF_OS_ID_LINUX		0x05U#define UDF_OS_ID_MKLINUX	0x06U#define UDF_OS_ID_FREEBSD	0x07U#define UDF_NAME_PAD	4#define UDF_NAME_LEN	255#define UDF_PATH_LEN	1023#pragma pack()#endif /* !defined(_LINUX_UDF_FMT_H) */

⌨️ 快捷键说明

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