📄 com_struct.h
字号:
MV_U8 Reserved2[12]; MV_U8 MaxTotalBlocks; MV_U8 MaxBlockPerPD; MV_U8 MaxHD; MV_U8 MaxExpander; MV_U8 MaxPM; MV_U8 MaxLogicalDrive; MV_U16 LogicalDriverMode; MV_U8 WWN[8]; /* For future VDS use. */} Adapter_Info, *PAdapter_Info;typedef struct _Adapter_Config { MV_BOOLEAN AlarmOn; MV_BOOLEAN AutoRebuildOn; MV_U8 BGARate; MV_BOOLEAN PollSMARTStatus; MV_U8 MediaPatrolRate; MV_U8 Reserved[3];} Adapter_Config, *PAdapter_Config;typedef struct _HD_Info{ Link_Entity Link; /* Including self DevID & DevType */ MV_U8 AdapterID; MV_U8 Status; /* Refer to HD_STATUS_XXX */ MV_U8 HDType; /* HD_Type_xxx, replaced by new driver with ConnectionType & DeviceType */ MV_U8 PIOMode; /* Max PIO mode */ MV_U8 MDMAMode; /* Max MDMA mode */ MV_U8 UDMAMode; /* Max UDMA mode */ MV_U8 ConnectionType; /* DC_XXX, ConnectionType & DeviceType in new driver to replace HDType above */ MV_U8 DeviceType; /* DT_XXX */ MV_U32 FeatureSupport; /* Support 1.5G, 3G, TCQ, NCQ, and etc, MV_BIT related */ MV_U8 Model[40]; MV_U8 SerialNo[20]; MV_U8 FWVersion[8]; MV_U64 Size; /* unit: 1KB */ MV_U8 WWN[8]; /* ATA/ATAPI-8 has such definitions for the identify buffer */ MV_U8 CurrentPIOMode; /* Current PIO mode */ MV_U8 CurrentMDMAMode; /* Current MDMA mode */ MV_U8 CurrentUDMAMode; /* Current UDMA mode */ MV_U8 Reserved3[5];// MV_U32 FeatureEnable; MV_U8 Reserved4[80];}HD_Info, *PHD_Info;typedef struct _HD_MBR_Info{ MV_U8 HDCount; MV_U8 Reserved[7]; MV_U16 HDIDs[MAX_HD_SUPPORTED_API]; MV_BOOLEAN hasMBR[MAX_HD_SUPPORTED_API];} HD_MBR_Info, *PHD_MBR_Info;typedef struct _HD_FreeSpaceInfo{ MV_U16 ID; /* ID should be unique*/ MV_U8 AdapterID; MV_U8 Reserved[4]; MV_BOOLEAN isFixed; MV_U64 Size; /* unit: 1KB */}HD_FreeSpaceInfo, *PHD_FreeSpaceInfo;typedef struct _HD_Block_Info{ MV_U16 ID; /* ID in the HD_Info*/ MV_U8 Type; /* Refer to DEVICE_TYPE_xxx */ MV_U8 Reserved1[5]; /* Free is 0xff */ MV_U16 BlockIDs[MAX_BLOCK_PER_HD_SUPPORTED_API]; }HD_Block_Info, *PHD_Block_Info;typedef struct _Exp_Info{ Link_Entity Link; /* Including self DevID & DevType */ MV_U8 AdapterID; MV_BOOLEAN Configuring; MV_BOOLEAN RouteTableConfigurable; MV_U8 PhyCount; MV_U16 ExpChangeCount; MV_U16 MaxRouteIndexes; MV_U8 VendorID[8+1]; MV_U8 ProductID[16+1]; MV_U8 ProductRev[4+1]; MV_U8 ComponentVendorID[8+1]; MV_U16 ComponentID; MV_U8 ComponentRevisionID; MV_U8 Reserved1[17];}Exp_Info, * PExp_Info;typedef struct _PM_Info{ Link_Entity Link; /* Including self DevID & DevType */ MV_U8 AdapterID; MV_U8 ProductRevision; MV_U8 PMSpecRevision; /* 10 means 1.0, 11 means 1.1 */ MV_U8 NumberOfPorts; MV_U16 VendorId; MV_U16 DeviceId; MV_U8 Reserved1[8];}PM_Info, *PPM_Info;typedef struct _HD_CONFIG{ MV_BOOLEAN WriteCacheOn; /* 1: enable write cache */ MV_BOOLEAN SMARTOn; /* 1: enable S.M.A.R.T */ MV_BOOLEAN Online; /* 1: to set HD online */ MV_U8 DriveSpeed; // For SATA & SAS. HD_SPEED_1_5G, HD_SPEED_3G etc MV_U8 Reserved[2]; MV_U16 HDID;}HD_Config, *PHD_Config;typedef struct _HD_STATUS{ MV_BOOLEAN SmartThresholdExceeded; MV_U8 Reserved[1]; MV_U16 HDID;}HD_Status, *PHD_Status;typedef struct _SPARE_STATUS{ MV_U16 HDID; MV_U16 LDID; MV_U8 Status; /* HD_STATUS_SPARE */ MV_U8 Reserved[3];}Spare_Status, *PSpare_Status;typedef struct _BSL{ MV_U64 LBA; /* Bad sector LBA for the HD. */ MV_U32 Count; /* How many serial bad sectors */ MV_BOOLEAN Flag; /* Fake bad sector or not. */ MV_U8 Reserved[3];}BSL,*PBSL;typedef struct _BLOCK_INFO{ MV_U16 ID; MV_U16 HDID; /* ID in the HD_Info */ MV_U16 Flags; /* Refer to BLOCK_XXX definition */ MV_U16 LDID; /* Belong to which LD */ MV_U8 Status; /* Refer to BLOCK_STATUS_XXX*/ MV_U8 Reserved[3]; MV_U32 ReservedSpaceForMigration; /* Space reserved for migration */ MV_U64 StartLBA; /* unit: 512 bytes */ MV_U64 Size; /* unit: 512 bytes, including ReservedSpaceForMigration */}Block_Info, *PBlock_Info;typedef struct _LD_Info{ MV_U16 ID; MV_U8 Status; /* Refer to LD_STATUS_xxx */ MV_U8 BGAStatus; /* Refer to LD_BGA_STATE_xxx */ MV_U16 StripeBlockSize;/* unit: 512 bytes */ MV_U8 RaidMode; MV_U8 HDCount; MV_U8 CacheMode; /* Default is CacheMode_Default, see above */ MV_U8 LD_GUID[MV_GUID_SIZE]; MV_U8 SectorCoefficient; /* (sector size) 1=>512 (default) , 2=>1024, 4=>2048, 8=>4096 */ MV_U8 Reserved[6]; MV_U64 Size; /* LD size, unit: 512 bytes */ MV_U8 Name[LD_MAX_NAME_LENGTH]; MV_U16 BlockIDs[MAX_HD_SUPPORTED_API]; /* 32 *//* * According to BLOCK ID, to get the related HD ID, then WMRU can * draw the related graph like above. */ MV_U8 SubLDCount; /* for raid 10, 50,60 */ MV_U8 NumParityDisk; /* For RAID 6. */ MV_U8 Reserved1[6];}LD_Info, *PLD_Info;typedef struct _Create_LD_Param{ MV_U8 RaidMode; MV_U8 HDCount; MV_U8 RoundingScheme; /* please refer to the definitions of ROUNDING_SCHEME_XXX. */ MV_U8 SubLDCount; /* for raid 10,50,60 */ MV_U16 StripeBlockSize;/*In sectors unit: 1KB */ MV_U8 NumParityDisk; /* For RAID 6. */ MV_U8 CachePolicy; /* please refer to the definitions of CACHEMODE_XXXX. */ MV_U8 InitializationOption;/* please refer to the definitions of INIT_XXXX. */ MV_U8 SectorCoefficient; /* (sector size) 1=>512 (default), 2=>1024, 4=>2048, 8=>4096 */ MV_U16 LDID; /* ID of the LD to be migrated or expanded */ MV_U8 Reserved2[4]; MV_U16 HDIDs[MAX_HD_SUPPORTED_API]; /* 32 */ MV_U8 Name[LD_MAX_NAME_LENGTH]; MV_U64 Size; /* size of LD in sectors */} Create_LD_Param, *PCreate_LD_Param;typedef struct _LD_STATUS{ MV_U8 Status; /* Refer to LD_STATUS_xxx */ MV_U8 Bga; /* Refer to LD_BGA_xxx */ MV_U16 BgaPercentage; /* xx% */ MV_U8 BgaState; /* Refer to LD_BGA_STATE_xxx */ MV_U8 Reserved[1]; MV_U16 LDID;} LD_Status, *PLD_Status;typedef struct _LD_Config{ MV_U8 CacheMode; /* See definition 4.4.1 CacheMode_xxx */ MV_U8 Reserved1; MV_BOOLEAN AutoRebuildOn; /* 1- AutoRebuild On */ MV_U8 Status; MV_U16 LDID; MV_U8 Reserved2[2]; MV_U8 Name[LD_MAX_NAME_LENGTH];}LD_Config, * PLD_Config;// Giving TargetID and LUN, returns it Type and DeviceID. If returned Type or DeviceID is 0xFF, not found.typedef struct _TargetLunType{ MV_U8 AdapterID; MV_U8 TargetID; MV_U8 Lun; MV_U8 Type; // TARGET_TYPE_LD or TARGET_TYPE_FREE_PD MV_U16 DeviceID; // LD ID or PD ID depends on Type MV_U8 Reserved[30];}TargetLunType, * PTargetLunType;typedef struct _HD_MPSTATUS{ MV_U16 HDID; MV_U16 LoopCount; /* loop count */ MV_U16 ErrorCount; /* error detected during media patrol */ MV_U16 Percentage; /* xx% */ MV_U8 Status; /* Refer to HD_BGA_STATE_xxx */ MV_U8 Type; MV_U8 Reserved[50]; }HD_MPStatus, *PHD_MPStatus;typedef struct _DBG_DATA{ MV_U64 LBA; MV_U64 Size; MV_U8 Data[SECTOR_LENGTH];}DBG_Data, *PDBG_Data;typedef struct _DBG_HD{ MV_U64 LBA; MV_U16 HDID; MV_BOOLEAN isUsed; MV_U8 Reserved[5];}DBG_HD;typedef struct _DBG_MAP{ MV_U64 LBA; MV_U16 LDID; MV_BOOLEAN isUsed; MV_U8 Reserved[5]; DBG_HD HDs[MAX_HD_SUPPORTED_API];}DBG_Map, *PDBG_Map;#ifdef CACHE_MODULE_SUPPORTtypedef struct _LD_CACHE_STATUS{ MV_BOOLEAN IsOnline; MV_U8 CachePolicy; MV_U16 StripeUnitSize; MV_U32 StripeSize; MV_U8 Sector_Coefficient; MV_U8 Reserved[7]; MV_LBA MAX_LBA;}LD_CACHE_STATUS, *PLD_CACHE_STATUS;#endif /* CACHE_MODULE_SUPPORT */#define MAX_PASS_THRU_DATA_BUFFER_SIZE (SECTOR_LENGTH+128)typedef struct { // We put Data_Buffer[] at the very beginning of this structure because SCSI commander did so. MV_U8 Data_Buffer[MAX_PASS_THRU_DATA_BUFFER_SIZE]; // set by driver if read, by application if write MV_U8 Reserved1[128]; MV_U32 Data_Length; // set by driver if read, by application if write MV_U16 DevId; // PD ID (used by application only) MV_U8 CDB_Type; // define a CDB type for each CDB category (used by application only) MV_U8 Reserved2; MV_U32 lba; MV_U8 Reserved3[64];} PassThrough_Config, * PPassThorugh_Config;#ifndef _OS_BIOS#pragma pack()#endif /* _OS_BIOS */#endif /* __MV_COM_STRUCT_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -