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

📄 com_struct.h

📁 6440linuxDriver的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
#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 + -