📄 com_struct.h
字号:
#ifndef __MV_COM_STRUCT_H__#define __MV_COM_STRUCT_H__#include "com_define.h"#define GET_ALL 0xFF#define ID_UNKNOWN 0x7F#define MAX_NUM_ADAPTERS 2#ifndef _OS_BIOS/* The following MAX number are to support ALL products. */#define MAX_HD_SUPPORTED_API 128#define MAX_EXPANDER_SUPPORTED_API 16#define MAX_PM_SUPPORTED_API 8#define MAX_LD_SUPPORTED_API 32#define MAX_BLOCK_SUPPORTED_API 512#define MAX_BLOCK_PER_HD_SUPPORTED_API 16#endif /* _OS_BIOS */#define MAX_BGA_RATE 0xFA#define MAX_MEDIAPATROL_RATE 0xFF#ifndef MV_GUID_SIZE#define MV_GUID_SIZE 8#endif /* MV_GUID_SIZE */#define LD_MAX_NAME_LENGTH 16#define CACHE_WRITEBACK_ENABLE 0#define CACHE_WRITETHRU_ENABLE 1#define CACHE_ADAPTIVE_ENABLE 2#define CACHE_WRITE_POLICY_FILTER (CACHE_WRITEBACK_ENABLE | \ CACHE_WRITETHRU_ENABLE | \ CACHE_ADAPTIVE_ENABLE)#define CACHE_LOOKAHEAD_ENABLE MV_BIT(2)#define CONSISTENCYCHECK_ONLY 0#define CONSISTENCYCHECK_FIX 1#define INIT_QUICK 0 //Just initialize first part size of LD#define INIT_FULLFOREGROUND 1 //Initialize full LD size#define INIT_FULLBACKGROUND 2 //Initialize full LD size background#define INIT_NONE 3#define BGA_CONTROL_START 0#define BGA_CONTROL_RESTART 1#define BGA_CONTROL_PAUSE 2#define BGA_CONTROL_RESUME 3#define BGA_CONTROL_ABORT 4#define BGA_CONTROL_COMPLETE 5#define BGA_CONTROL_IN_PROCESS 6#define BGA_CONTROL_TERMINATE_IMMEDIATE 7#define BGA_CONTROL_AUTO_PAUSE 8#define LD_STATUS_FUNCTIONAL 0#define LD_STATUS_DEGRADE 1#define LD_STATUS_DELETED 2#define LD_STATUS_MISSING 3 /* LD missing in system. */#define LD_STATUS_OFFLINE 4#define LD_STATUS_PARTIALLYOPTIMAL 5 /* r6 w/ 2 pd, 1 hd drops */#define LD_STATUS_INVALID 0xFF#define LD_BGA_NONE 0#define LD_BGA_REBUILD MV_BIT(0)#define LD_BGA_CONSISTENCY_FIX MV_BIT(1)#define LD_BGA_CONSISTENCY_CHECK MV_BIT(2)#define LD_BGA_INIT_QUICK MV_BIT(3)#define LD_BGA_INIT_BACK MV_BIT(4)#define LD_BGA_MIGRATION MV_BIT(5)#define LD_BGA_STATE_NONE 0#define LD_BGA_STATE_RUNNING 1#define LD_BGA_STATE_ABORTED 2#define LD_BGA_STATE_PAUSED 3#define LD_BGA_STATE_AUTOPAUSED 4#define LD_BGA_STATE_DDF_PENDING MV_BIT(7)#define LD_MODE_RAID0 0x0#define LD_MODE_RAID1 0x1#define LD_MODE_RAID5 0x5#define LD_MODE_RAID6 0x6#define LD_MODE_JBOD 0x0f#define LD_MODE_RAID10 0x10#define LD_MODE_RAID1E 0x11#define LD_MODE_RAID50 0x50#define LD_MODE_RAID60 0x60#define LD_MODE_UNKNOWN 0xFF#define HD_WIPE_MDD 0#define HD_WIPE_FORCE 1#define ROUNDING_SCHEME_NONE 0 /* no rounding */#define ROUNDING_SCHEME_1GB 1 /* 1 GB rounding */#define ROUNDING_SCHEME_10GB 2 /* 10 GB rounding */#define DEVICE_TYPE_NONE 0#define DEVICE_TYPE_HD 1#define DEVICE_TYPE_PM 2#define DEVICE_TYPE_EXPANDER 3#define DEVICE_TYPE_PORT 0xFF#define HD_STATUS_FREE MV_BIT(0)#define HD_STATUS_ASSIGNED MV_BIT(1)#define HD_STATUS_SPARE MV_BIT(2)#define HD_STATUS_OFFLINE MV_BIT(3)#define HD_STATUS_SMARTCHECKING MV_BIT(4)#define HD_STATUS_MP MV_BIT(5)#define HD_BGA_STATE_NONE LD_BGA_STATE_NONE#define HD_BGA_STATE_RUNNING LD_BGA_STATE_RUNNING#define HD_BGA_STATE_ABORTED LD_BGA_STATE_ABORTED#define HD_BGA_STATE_PAUSED LD_BGA_STATE_PAUSED#define HD_BGA_STATE_AUTOPAUSED LD_BGA_STATE_AUTOPAUSED#define GLOBAL_SPARE_DISK MV_BIT(2)#define PD_DDF_VALID MV_BIT(0)#define PD_DISK_VALID MV_BIT(1)#define PD_DDF_CLEAN MV_BIT(2)#define PD_NEED_UPDATE MV_BIT(3)#define PD_MBR_VALID MV_BIT(4)#define PD_NEED_FLUSH MV_BIT(5)#define PD_CLEAR_MBR MV_BIT(6)#if ERROR_HANDLING_SUPPORT#define PD_RCT_NEED_UPDATE MV_BIT(7)#endif#define PD_STATE_ONLINE MV_BIT(0)#define PD_STATE_FAILED MV_BIT(1)#define PD_STATE_REBUILDING MV_BIT(2)#define PD_STATE_TRANSITION MV_BIT(3)#define PD_STATE_SMART_ERROR MV_BIT(4)#define PD_STATE_READ_ERROR MV_BIT(5)#define PD_STATE_MISSING MV_BIT(6)#define HD_STATUS_SETONLINE 0#define HD_STATUS_SETOFFLINE 1// Definition used for old driver.#define HD_TYPE_SATA MV_BIT(0)#define HD_TYPE_PATA MV_BIT(1)#define HD_TYPE_SAS MV_BIT(2)#define HD_TYPE_ATAPI MV_BIT(3)#define HD_TYPE_TAPE MV_BIT(4)#define HD_TYPE_SES MV_BIT(5)// PD's Protocol/Connection type (used by new driver)#define DC_ATA MV_BIT(0)#define DC_SCSI MV_BIT(1)#define DC_SERIAL MV_BIT(2)#define DC_PARALLEL MV_BIT(3)#define DC_ATAPI MV_BIT(4) // used by core driver to prepare FIS// PD's Device type defined in SCSI-III specification (used by new driver)#define DT_DIRECT_ACCESS_BLOCK 0x00#define DT_SEQ_ACCESS 0x01#define DT_PRINTER 0x02#define DT_PROCESSOR 0x03#define DT_WRITE_ONCE 0x04#define DT_CD_DVD 0x05#define DT_OPTICAL_MEMORY 0x07#define DT_MEDIA_CHANGER 0x08#define DT_STORAGE_ARRAY_CTRL 0x0C#define DT_ENCLOSURE 0x0D// The following are defined by Marvell#define DT_EXPANDER 0x20#define DT_PM 0x21#define HD_FEATURE_NCQ MV_BIT(0) /* Capability */#define HD_FEATURE_TCQ MV_BIT(1)#define HD_FEATURE_1_5G MV_BIT(2)#define HD_FEATURE_3G MV_BIT(3)#define HD_FEATURE_WRITE_CACHE MV_BIT(4)#define HD_FEATURE_48BITS MV_BIT(5)#define HD_FEATURE_SMART MV_BIT(6)#define HD_SPEED_1_5G 1 // current #define HD_SPEED_3G 2#define EXP_SSP MV_BIT(0)#define EXP_STP MV_BIT(1)#define EXP_SMP MV_BIT(2)#define HD_DMA_NONE 0#define HD_DMA_1 1#define HD_DMA_2 2#define HD_DMA_3 3#define HD_DMA_4 4#define HD_DMA_5 5#define HD_DMA_6 6#define HD_DMA_7 7#define HD_DMA_8 8#define HD_DMA_9 9#define HD_PIO_NONE 0#define HD_PIO_1 1#define HD_PIO_2 2#define HD_PIO_3 3#define HD_PIO_4 4#define HD_PIO_5 5#define HD_XCQ_OFF 0#define HD_NCQ_ON 1#define HD_TCQ_ON 2#define SECTOR_LENGTH 512#define SECTOR_WRITE 0#define SECTOR_READ 1#define DBG_LD2HD 0#define DBG_HD2LD 1#define DRIVER_LENGTH 1024*16#define FLASH_DOWNLOAD 0xf0#define FLASH_UPLOAD 0xf#define FLASH_TYPE_CONFIG 0#define FLASH_TYPE_BIN 1#define FLASH_TYPE_BIOS 2#define FLASH_TYPE_FIRMWARE 3#define BLOCK_INVALID 0#define BLOCK_VALID MV_BIT(0)#define BLOCK_ASSIGNED MV_BIT(1)#ifdef _OS_BIOS#define FREE_BLOCK(Flags) (Flags&(BLOCK_VALID) == Flags)#define ASSIGN_BLOCK(Flags) (Flags&(BLOCK_VALID|BLOCK_ASSIGNED) == Flags)#define INVALID_BLOCK(Flags) (Flags&(BLOCK_VALID|BLOCK_ASSIGNED) == 0) #endif /* _OS_BIOS *//* Target device type */#define TARGET_TYPE_LD 0#define TARGET_TYPE_FREE_PD 1/*#define BLOCK_STATUS_NORMAL 0#define BLOCK_STATUS_REBUILDING MV_BIT(0)#define BLOCK_STATUS_CONSISTENTCHECKING MV_BIT(1)#define BLOCK_STATUS_INITIALIZING MV_BIT(2)#define BLOCK_STATUS_MIGRATING MV_BIT(3)#define BLOCK_STATUS_OFFLINE MV_BIT(4)*/#define MAX_WIDEPORT_PHYS 8#ifndef _OS_BIOS#pragma pack(8)#endif /* _OS_BIOS */typedef struct _Link_Endpoint { MV_U16 DevID; MV_U8 DevType; /* Refer to DEVICE_TYPE_xxx, (additional type like EDGE_EXPANDER and FANOUT_EXPANDER might be added). */ MV_U8 PhyCnt; /* Number of PHYs for this endpoint. Greater than 1 if it is wide port. */ MV_U8 PhyID[MAX_WIDEPORT_PHYS]; /* Assuming wide port has max of 8 PHYs. */ MV_U8 SAS_Address[8]; /* Filled with 0 if not SAS device. */ MV_U8 Reserved1[8];} Link_Endpoint, * PLink_Endpoint;typedef struct _Link_Entity { Link_Endpoint Parent; MV_U8 Reserved[8]; Link_Endpoint Self;} Link_Entity, *PLink_Entity;typedef struct _Version_Info{ MV_U32 VerMajor; MV_U32 VerMinor; MV_U32 VerOEM; MV_U32 VerBuild;}Version_Info, *PVersion_Info;#define BASE_ADDRESS_MAX_NUM 6#define SUPPORT_LD_MODE_RAID0 MV_BIT(0)#define SUPPORT_LD_MODE_RAID1 MV_BIT(1)#define SUPPORT_LD_MODE_RAID10 MV_BIT(2)#define SUPPORT_LD_MODE_RAID1E MV_BIT(3)#define SUPPORT_LD_MODE_RAID5 MV_BIT(4)#define SUPPORT_LD_MODE_RAID6 MV_BIT(5)#define SUPPORT_LD_MODE_RAID50 MV_BIT(6)#define SUPPORT_LD_MODE_JBOD MV_BIT(7)#define FEATURE_BGA_REBUILD_SUPPORT MV_BIT(0)#define FEATURE_BGA_BKINIT_SUPPORT MV_BIT(1)#define FEATURE_BGA_SYNC_SUPPORT MV_BIT(2)#define FEATURE_BGA_MIGRATION_SUPPORT MV_BIT(3)#define FEATURE_BGA_MEDIAPATROL_SUPPORT MV_BIT(4)typedef struct _Adapter_Info { Version_Info DriverVersion; Version_Info BIOSVersion; MV_U64 Reserved1[2]; /* Reserve for firmware */ MV_U32 SystemIOBusNumber; MV_U32 SlotNumber; MV_U32 InterruptLevel; MV_U32 InterruptVector; MV_U32 VenDevID; MV_U32 SubVenDevID; MV_U8 PortCount; /* How many ports, like 4 ports, or 4S1P. */ MV_U8 PortSupportType; /* Like SATA port, SAS port, PATA port, use MV_BIT */ MV_U8 Features; /* Feature bits. See FEATURE_XXX. If corresponding bit is set, that feature is supported. */ MV_BOOLEAN AlarmSupport;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -