📄 ecma167.h
字号:
#if !defined(_ECMA167_H)#define _ECMA167_H//#include "gui.h"#include "common.h"/*#define Uint8 unsigned char#define Int8 char#define Uint16 unsigned short#define Int16 short#define Uint32 unsigned long#define Int32 long#define Uint64 unsigned __int64#define Int64 __int64*/#define Uint8 RMint8#define Int8 RMint8#define Uint16 RMuint16#define Int16 RMint16#define Uint32 RMuint32#define Int32 RMint32#define Uint64 RMuint64#define Int64 RMint64#define ENTITYID_FLAGS_DIRTY 0x01U#define ENTITYID_FLAGS_PROTECTED 0x02U#define STD_ID_LEN 5#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"#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#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_ATTRI_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#define PVD_FLAGS_VSID_COMMON 0x0001#define PARTITION_FLAGS_ALLOC 1#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"#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#define PARTITION_MAP_TYPE_NONE 0#define PARTITION_MAP_TYPE_1 1#define PARTITION_MAP_TYPE_2 2#define INTEGRITY_TYPE_OPEN 0#define INTEGRITY_TYPE_CLOSE 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#define FILE_HIDDEN 1#define FILE_DIRECTORY 2#define FILE_DELETED 4#define FILE_PARENT 8#define FILE_METADATA 0x10#define ICB_FILE_TYPE_NONE 0x00U#define ICB_FILE_TYPE_UNALLOC 0x01U#define ICB_FILE_TYPE_INTEGRITY 0x02U#define ICB_FILE_TYPE_INDIRECT 0x03U#define ICB_FILE_TYPE_DIRECTORY 0x04U#define ICB_FILE_TYPE_REGULAR 0x05U#define ICB_FILE_TYPE_BLOCK 0x06U#define ICB_FILE_TYPE_CHAR 0x07U#define ICB_FILE_TYPE_EXTENDED 0x08U#define ICB_FILE_TYPE_FIFO 0x09U#define ICB_FILE_TYPE_SOCKET 0x0aU#define ICB_FILE_TYPE_TERMINAL 0x0bU#define ICB_FILE_TYPE_SYMLINK 0x0cU#define ICB_FILE_TYPE_STREAMDIR 0x0dU#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#define ICB_FLAG_STREAM 0x2000U#define ICB_FLAG_AD_SHORT 0#define ICB_FLAG_AD_LONG 1#define ICB_FLAG_AD_EXTENDED 2#define ICB_FLAG_AD_IN_ICB 3typedef RMuint8 dstring;struct charspec{ Uint8 charSetType; Uint8 charSetInfo[63]; //char charSetInfo[63];};struct timestamp{ Uint16 typeAndTimezone; Uint16 year; Uint8 month; Uint8 day; Uint8 hour; Uint8 minute; Uint8 second; Uint8 centiseconds; Uint8 hundredsOfMicroseconds; Uint8 microseconds;};/*#define TIMESTAMP_TYPE_MASK 0xF000#define TIMESTAMP_TYPE_CUT 0x0000#define TIMESTAMP_TYPE_LOCAL 0x1000#define TIMESTAMP_TYPE_AGREEMENT 0x2000#define TIMESTAMP_TIMEZONE_MASK 0x0FFF*/typedef struct EntityID{ Uint8 flags; //Uint8 ident[23]; Int8 ident[23]; Uint8 identSuffix[8];} regid;struct VolStructDesc{ Uint8 structType; Uint8 stdIdent[STD_ID_LEN]; Uint8 structVersion; Uint8 structData[2041];};struct BeginningExtendedAreaDesc{ Uint8 structType; Uint8 stdIdent[STD_ID_LEN]; Uint8 structVersion; Uint8 structData[2041];};struct TerminatingExtendedAreaDesc{ Uint8 structType; Uint8 stdIdent[STD_ID_LEN]; Uint8 structVersion; Uint8 structData[2041];};#define BOOT_FLAGS_ERASE 1struct extent_ad{ Uint32 extLength; Uint32 extLocation;};struct tag{ Uint16 tagIdent; Uint16 descVersion; Uint8 tagChecksum; Uint8 reserved; Uint16 tagSerialNum; Uint16 descCRC; Uint16 descCRCLength; Uint32 tagLocation;};struct NSRDesc{ Uint8 structType; Uint8 stdIdent[STD_ID_LEN]; Uint8 structVersion; Uint8 reserved; Uint8 structData[2040];};struct PrimaryVolDesc{ struct tag descTag; Uint32 volDescSeqNum; Uint32 primaryVolDescNum; dstring volIdent[32]; Uint16 volSeqNum; Uint16 maxVolSeqNum; Uint16 interchangeLvl; Uint16 maxInterchangeLvl; Uint32 charSetList; Uint32 maxCharSetList; dstring volSetIdent[128]; struct charspec descCharSet; struct charspec explanatoryCharSet; struct extent_ad volAbstract; struct extent_ad volCopyright; struct EntityID appIdent; struct timestamp recordingDateAndTime; struct EntityID impIdent; Uint8 impUse[64]; Uint32 predecessorVolDescSeqLocation; Uint16 flags; Uint8 reserved[22];};struct AnchorVolDescPtr{ struct tag descTag; struct extent_ad mainVolDescSeqExt; struct extent_ad reserveVolDescSeqExt; Uint8 reserved[480];};struct VolDescPtr{ struct tag descTag; Uint32 volDescSeqNum; struct extent_ad nextVolDescSeqExt; Uint8 reserved[484];};struct ImpUseVolDesc{ struct tag descTag; Uint32 volDescSeqNum; struct EntityID impIdent; Uint8 impUse[460];};struct PartitionDesc{ struct tag descTag; Uint32 volDescSeqNum; Uint16 partitionFlags; Uint16 partitionNumber; struct EntityID partitionContents; Uint8 partitionContentsUse[128]; Uint32 accessType; Uint32 partitionStartingLocation; Uint32 partitionLength; struct EntityID impIdent; Uint8 impUse[128]; Uint8 reserved[156];};struct LogicalVolDesc{ struct tag descTag; Uint32 volDescSeqNum; struct charspec descCharSet; dstring logicalVolIdent[128]; Uint32 logicalBlockSize; struct EntityID domainIdent; Uint8 logicalVolContentsUse[16]; Uint32 mapTableLength; Uint32 numPartitionMaps; struct EntityID impIdent; Uint8 impUse[128]; struct extent_ad integritySeqExt; Uint8 partitionMaps[0];};struct GenericPartitionMap{ Uint8 partitionMapType; Uint8 partitionMapLength; Uint8 partitionMapping[0];};struct GenericPartitionMap1{ Uint8 partitionMapType; Uint8 partitionMapLength; Uint16 volSeqNum; Uint16 partitionNum;};struct GenericPartitionMap2{ Uint8 partitionMapType; Uint8 partitionMapLength; Uint8 partitionIdent[62];};struct UnallocatedSpaceDesc{ struct tag descTag; Uint32 volDescSeqNum; Uint32 numAllocDescs; struct extent_ad allocDescs[0];};struct TerminatingDesc{ struct tag descTag; Uint8 reserved[496];};struct GenericDesc{ struct tag descTag; Uint32 volDescSeqNum;};struct LogicalVolIntegrityDesc{ struct tag descTag; struct timestamp recordingDateAndTime; Uint32 integrityType; struct extent_ad nextIntegrityExt; Uint8 logicalVolContentsUse[32]; Uint32 numOfPartitions; Uint32 lengthOfImpUse; union { Uint32 freeSpaceTable[0]; Uint32 sizeTable[0]; Uint8 impUse[0]; };
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -