📄 myiso.h
字号:
////////////////////////////////////////////// Copyright Cirrus Logic, Inc. 2001, 2002////////////////////////////////////////////#ifndef __myISO_H__#define __myISO_H__//#include "apitypes.h"//#include "basetype.h"/* Volume types */#define CDFS_VOL_AUDIO 1 /* Audio CD */#define CDFS_VOL_DATA 2 /* Data CD */#define CDFS_VOL_MIXED 3 /* Mixed-format CD *//* Track types */#define CDFS_TRACK_AUDIO 1 /* audio (red) */#define CDFS_TRACK_MODE1 2 /* data (yellow, mode1) */#define CDFS_TRACK_MODE2 3 /* data (yellow, mode2) */#define CDFS_TRACK_FORM1 4 /* XA data (green, mode2 form1) */ #define CDFS_TRACK_FORM2 5 /* XA data (green, mode2 form2) */ /* File seeking modes */#define CDFS_SEEK_SET 1 #define CDFS_SEEK_CUR 2#define CDFS_SEEK_END 3#define MAX_PATH_NUM 500 /* * The iso filesystem constants/structures */ // Volume descriptor types #define ISO_VD_PRIMARY 1#define ISO_VD_SUPPLEMENTARY 2 /* Used by Joliet */#define ISO_VD_END 255 //0xFF// Volume descriptor locations/sectors#define PRIMARY_DESC_LBA 16#define SECONDARY_DESC_LBA 17// Volume IDs#define ISO_STANDARD_ID "CD001"#define ISO_ECMA_ID "CDW01"#define ISO_SIERRA_ID "CDROM"#define ISO_DEFAULT_BLOCK_SIZE 2048#define ASSOCRMint8 '='#define LEN_ISONAME 31#define MAX_ISONAME 37/* A directory consists of a series of directory records in one or more * consecutive sectors.*/typedef struct _ISODirRecord_ { RMuint8 lenDR; /* 711 */ RMuint8 extAttrLength ; /* 711 */ RMint8 lExtent[4]; /* 733 */ RMint8 mExtent[4]; /* 732 */ RMint8 lSize[4]; /* 733 */ RMint8 mSize[4]; /* 732 */ RMint8 date[7]; /* 711 */ RMint8 flags; RMint8 file_unit_size [1]; /* 711 */ RMint8 interleave[1]; /* 711 */ RMint8 volumeSequenceNumber[4]; /* 723 */ Uint8 lenFI; /* 711 */ RMint8 name [38]; } ISODirRecord;/*typedef struct _ISODir_{ struct ISODir *next; RMint8 * name; ISODirRecord *dirRecord;} ISODir;*/struct ISOPrimaryDescriptor { RMint8 type [1]; /* 711 */ RMint8 id [5]; RMint8 version [1]; /* 711 */ RMint8 unused1 [1]; RMint8 systemID [32]; /* aRMint8s */ RMint8 volumeID [32]; /* dRMint8s */ RMint8 unused2 [8];// Uint32 lVolumeSpaceSize; /* 733 Number of logical blocks in the volume */ RMint8 lVolumeSpaceSize[4];// Uint32 mVolumeSpaceSize; /* 733 */ RMint8 mVolumeSpaceSize[4]; RMint8 escapeSequences [32];// Uint16 lVolumeSetSize; /* 733 Little Endian Format */ RMint8 lVolumeSetSize[2];// Uint16 mVolumeSetSize; /* 733 Big Endian Format */ RMint8 mVolumeSetSize[2]; RMint8 volumeSequenceNumber [4]; /* 723 */// Uint16 lLogicalBlockSize; /* 723 Little Endian Format */ RMint8 lLogicalBlockSize[2];// Uint16 mLogicalBlockSize; /* 732 Big Endian Format */ RMint8 mLogicalBlockSize[2]; RMint8 lPathTableSize[4]; /* 733 */ RMint8 mPathTableSize[4]; /* 732 */ RMint8 typeLPathTable[4]; RMint8 optTypeLPathTable[4]; RMint8 typeMPathTable[4]; RMint8 optTypeMPathTable[4]; RMint8 root[34]; /* 9.1 */ RMint8 volumeSetID [128]; /* dRMint8s */ RMint8 publisherID [128]; /* aRMint8s */ RMint8 preparerID [128]; /* aRMint8s */ RMint8 applicationID [128]; /* aRMint8s */ RMint8 copyright_fileID [37]; /* 7.5 dRMint8s */ RMint8 abstract_fileID [37]; /* 7.5 dRMint8s */ RMint8 bibliographicFileID [37]; /* 7.5 dRMint8s */ RMint8 creationDate [17]; /* 8.4.26.1 */ RMint8 modificationDate [17]; /* 8.4.26.1 */ RMint8 expirationDate [17]; /* 8.4.26.1 */ RMint8 effectiveDate [17]; /* 8.4.26.1 */ RMint8 fileStructureVersion [1]; /* 711 */ RMint8 unused4 [1]; RMint8 applicationData [512]; RMint8 unused5 [653];} ; /* * The next two structures have odd lengths! * For this reason, we cannot use sizeof (struct iso_path_table) or * sizeof (struct iso_directory_record) to compute on disk sizes. * Instead, we use offsetof(..., name) and add the name size. * See mkisofs.h */ typedef struct _ISOPathTable_ {// Uint8 parsed; //marked by iavhf Uint8 Len_DI; /* 721 ISO 9660 standard 7.2.1 */ Uint8 exAttrRecLen;// Uint32 extent; /* 731 */ RMint8 extent[4];// Uint16 parent; /* 721 */ RMint8 parent[2]; RMint8 name[38]; //璶
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -