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

📄 mic.h

📁 RAID卡的测试程序
💻 H
📖 第 1 页 / 共 5 页
字号:
#define PMIC_LMM_ADD_INITIATOR             (0x0001 | MIC_SCSIEMU_ID )
#define PMIC_LMM_DELETE_INITIATOR           (0x0002 | MIC_SCSIEMU_ID )
#define PMIC_LMM_GET_LMMTABLE              (0x0003 | MIC_SCSIEMU_ID )
#define PMIC_LMM_ADD_LMMENTRY              (0x0004 | MIC_SCSIEMU_ID )
#define PMIC_LMM_SET_LMMENTRY              (0x0005 | MIC_SCSIEMU_ID )
#define PMIC_LMM_DELETE_LMMENTRY           (0x0006 | MIC_SCSIEMU_ID )

/* Redundancy check commands */
#define PMIC_RCK_START                  (PMIC_SUBOPCODE_START | MIC_REDUNDANCY_CHK_ID)
#define PMIC_RCK_STOP                   (PMIC_SUBOPCODE_STOP | MIC_REDUNDANCY_CHK_ID)
#define PMIC_RCK_PAUSE                  (PMIC_SUBOPCODE_PAUSE | MIC_REDUNDANCY_CHK_ID)
#define PMIC_RCK_RESUME                 (PMIC_SUBOPCODE_RESUME | MIC_REDUNDANCY_CHK_ID)
#define PMIC_RCK_GETPROGRESS            (PMIC_SUBOPCODE_GET_PROGRESS | MIC_REDUNDANCY_CHK_ID)
#define PMIC_RCK_TEST                   (MIC_TEST_MODULE | MIC_REDUNDANCY_CHK_ID)


/* ISCSI Management Related Commands */
#define PMIC_ISCSI_GET_INFORMATION          MIC_ISCSI_MGT_ID | 0x0001
#define PMIC_ISCSI_GET_PARAMETERS           MIC_ISCSI_MGT_ID | 0x0002
#define PMIC_ISCSI_SET_PARAMETERS           MIC_ISCSI_MGT_ID | 0x0003
#define PMIC_ISCSI_PING                     MIC_ISCSI_MGT_ID | 0x0004
#define PMIC_ISCSI_ADD_CHAP_RECORD          MIC_ISCSI_MGT_ID | 0x0005
#define PMIC_ISCSI_DEL_CHAP_RECORD          MIC_ISCSI_MGT_ID | 0x0006
#define PMIC_ISCSI_SET_CHAP_RECORD          MIC_ISCSI_MGT_ID | 0x0007
#define PMIC_ISCSI_GET_CHAP_RECORD          MIC_ISCSI_MGT_ID | 0x0008
#define PMIC_ISCSI_GET_NODE_LIST            MIC_ISCSI_MGT_ID | 0x0009




/* Events */
#define PMIC_EVENT_CLEAR_LOG                (0x0001 | MIC_EVENTMGR_ID)
#define PMIC_EVENT_DISABLE_LOGGING          (0x0002 | MIC_EVENTMGR_ID)
#define PMIC_EVENT_ENABLE_LOGGING           (0x0003 | MIC_EVENTMGR_ID)
#define PMIC_EVENT_GET                      (0x0004 | MIC_EVENTMGR_ID)
#define PMIC_EVENT_GET_EVENTINFO            (0x0005 | MIC_EVENTMGR_ID)
#define PMIC_EVENT_GET_SETTINGS             (0x0007 | MIC_EVENTMGR_ID)
#define PMIC_EVENT_RESET_EVENTINFO          (0x0008 | MIC_EVENTMGR_ID)
#define PMIC_EVENT_SET_EVENTINFO            (0x0009 | MIC_EVENTMGR_ID)
#define PMIC_EVENT_SET_SETTINGS             (0x000b | MIC_EVENTMGR_ID)
#define PMIC_EVENT_GET_STATS                (0x000c | MIC_EVENTMGR_ID)


/* Buzzer */
#define PMIC_BUZZER_TURN_ON                 (0x0000 | MIC_BUZZER_ID)
#define PMIC_BUZZER_TURN_OFF                (0x0001 | MIC_BUZZER_ID)
#if DURATION_SUPPORTED
#define PMIC_BUZZER_SET_DURATION            (0x0002 | MIC_BUZZER_ID)
#define PMIC_BUZZER_GET_DURATION            (0x0003 | MIC_BUZZER_ID)
#endif
#define PMIC_BUZZER_GET_STATUS              (0x0004 | MIC_BUZZER_ID)

/* Statistics monitoring */
#define PMIC_STATS_RESET                    (0x0000 | MIC_STATS_ID)
#define PMIC_STATS_GET_SUBSYSTEM            (0x0001 | MIC_STATS_ID)
#define PMIC_STATS_GET_ENCLOSURE            (0x0002 | MIC_STATS_ID)
#define PMIC_STATS_GET_CONTROLLER           (0x0003 | MIC_STATS_ID)
#define PMIC_STATS_GET_LOGICAL_DRIVE        (0x0004 | MIC_STATS_ID)
#define PMIC_STATS_GET_PHYSICAL_DRIVE       (0x0005 | MIC_STATS_ID)

/* Promise Management Interface Command Opcodes - End */


/* Command specific structures - Start */

/* PMIC_SUBSYSTEM_GET_INFO */     

typedef struct micSubsystemGetInfoCmd
{
    u8          gci_ScsiOpCode;              
    u8          gci_MicSignature;        
    u16         gci_MicOpCode;        
    u8          gci_UniqueCmdId;        
    u8          gci_LoginKey;        
    u16         gci_Reserved0;
    u16         gci_Reserved1;
    u16         gci_TransferLength;        
    u16         gci_TransferOffset;        
    u8          gci_Reserved2;        
    Control_t   gci_Control; 
} __attribute__ ((packed)) micSubsystemGetInfoCmd_t;
//} micSubsystemGetInfoCmd_t;

typedef struct micSubsystemInfo
{
    u8      ssi_CustName[24];
    u8      ssi_CustModel[16];
    u8      ssi_MftPartNo[16];
    u8      ssi_MftSerialNo[16];
    u8      ssi_MftRev[8];
    u8      ssi_CustPartNo[16];
    u8      ssi_CustSerialNo[16];
    u8      ssi_CustRev[8];
    u8      ssi_WWN[8];
    u8      ssi_Reserved0[16];
    u8      ssi_MftName[48];
    u8      ssi_MftModel[48];
    u8      ssi_MftMonth;
    u8      ssi_MftDate;
    u16     ssi_MftYear;
    u8      ssi_Reserved1[5];
    u8      ssi_UserName[48];
    u8      ssi_MaxRAIDSSSupported;
    u8      ssi_MaxJOBExpSSSupported;
    u8      ssi_MaxCtlSupported;
    u8      ssi_InterConnectType;
    u8      ssi_Reserved2[61];
    u8      ssi_RAIDSSPresent;
    u8      ssi_JOBExpSSPresent;
    u8      ssi_CtlPresent;
    u8      ssi_Reserved3[148];
}micSubsystemInfo_t;


/* PMIC_SUBSYSTEM_GET_SETTINGS */
/* PMIC_SUBSYSTEM_SET_SETTINGS */

typedef struct micSubsysGetSetSettingsCmd
{
    u8          sgss_ScsiOpCode;              
    u8          sgss_MicSignature;        
    u16         sgss_MicOpCode;        
    u8          sgss_UniqueCmdId;        
    u8          sgss_LoginKey;        
    u16         sgss_Reserved0;
    u16         sgss_Reserved1;
    u16         sgss_TransferLength;        
    u16         sgss_TransferOffset;        
    u8          sgss_Reserved2;        
    Control_t   sgss_Control; 
} __attribute__ ((packed)) micSubsysGetSetSettingsCmd_t;
//} micSubsysGetSetSettingsCmd_t;

typedef struct micSubsystemSettings
{
    u8      ss_UserName[48];
    u8      ss_Reserved[208];
}micSubsystemSettings_t;

/* PMIC_CONTROLLER_GET_INFO */

typedef struct micCtlGetInfoCmd
{
    u8          gci_ScsiOpCode;              
    u8          gci_MicSignature;        
    u16         gci_MicOpCode;        
    u8          gci_UniqueCmdId;        
    u8          gci_LoginKey;        
    u16         gci_ControllerID;        
    u8          gci_CodePage;                        
    u8          gci_Reserved;
    u16         gci_TransferLength;        
    u16         gci_TransferOffset;        
    u8          gci_ControllerCount;        
    Control_t   gci_Control; 
} __attribute__ ((packed)) micCtlGetInfoCmd_t;
//} micCtlGetInfoCmd_t;

/* Possible values for gci_CodePage*/
#define ALL_PAGES                   0xFF
#define RAID_CONTROLLER_INFO        0x00
#define FW_SW_CODE_PAGE             0x01
#define GENERIC_HW_CODE_PAGE        0x02
#define OTHER_HW_CODE_PAGE          0x03
#define ISCSI_NETWORK_PAGE          0x04
#define ETHERNET_PAGE               0x05
#define PROMISE_COERCION_METHOD     0x00    /* this is aligned on GB */
#define PROMISE_IV_COERCION_METHOD  0x01    /* this is based on size */

typedef struct micControllerInfoPage0
{
    u16     ci_PageCode;
    u16     ci_PageLength;
    u16     ci_DeviceID;
    u8      ci_Reserved0[2];
    u8      ci_CustName[24];
    u8      ci_CustModel[16];
    u8      ci_MftPartNo[16];
    u8      ci_MftSerialNo[16];
    u8      ci_MftRev[8];
    u8      ci_CustPartNo[16];
    u8      ci_CustSerialNo[16];
    u8      ci_CustRev[8];
    u8      ci_WWN[8];
    u8      ci_Reserved1[16];
    u8      ci_MftName[48];
    u8      ci_MftModel[48];
    u8      ci_MftMonth;
    u8      ci_MftDate;
    u16     ci_MftYear;
    u8      ci_Reserved2[4];
    u8      ci_UserName[48];
    u16     ci_ProductID;
    u8      ci_Reserved3[2];
    u32     ci_Uptime;
    u64     ci_AccumulatedTime;
    u8      ci_SCSIProtocolSupported;
    u8      ci_Reserved31;
    u16     ci_MaxCmdSupported;
    u8      ci_MaxLogLBABitsSupported;
    u8      ci_DefaultCacheLineSize;
    u8      ci_CacheLineSize;
    u8      ci_RaidState;
    u8      ci_Reserved4[34];
    u8      ci_MDDVersion;
    u8      ci_Reserved5;
    u32     ci_MaxMDDSizeReserved;
    u32     ci_MaxMDDSizeUsed;
    u8      ci_Reserved6[36];
    u16     ci_MaxDiskArraySupported;
    u16     ci_DiskArrayPresent;
    u8      ci_Reserved7[36];
    u16     ci_MaxLogicalDriveSupported;
    u16     ci_LogicalDrivePresent;
    u16     ci_LogicalDriveOnline;
    u16     ci_LogicalDriveOffline;
    u16     ci_LogicalDriveCritical;
    u8      ci_Reserved8[36];
    u16     ci_MaxPhysicalDriveSupported;
    u16     ci_PhysicalDrivePresent;
 /* u16     ci_PhysicalDriveElementInArray;
    u16     ci_PhysicalDriveNotConfigured; */
    u16     ci_PhysicalDriveOnline;
    u16     ci_PhysicalDriveOffline;
 /* u16     ci_PhysicalDriveMissing;
    u16     ci_PhysicalDriveRegen; */
    u16     ci_PhysicalDrivewithPFA;
    u16     ci_PhysicalDriveElementInArray;
    u16     ci_PhysicalDriveNotConfigured;
    u16     ci_PhysicalDriveMissing;
    u16     ci_PhysicalDriveRegen;
    u16     ci_MaxChannelsSupported;//[cz]add
    u8      ci_Reserved9[26];
    u16     ci_MaxGlobalSparesSupported;
    u16     ci_GlobalSparesPresent;
    u16     ci_MaxDedicatedSparesSupported;
    u16     ci_DedicatedSparesPresent;
    u16     ci_MaxTempGlobalSparesSupported;
    u16     ci_TempGlobalSparesPresent;
    u16     ci_TempGlobalSparesUsed;
    u16     ci_MaxTempDedicatedSparesSupported;
    u16     ci_TempDedicatedSparesPresent;
    u16     ci_TempDedicatedSparesUsed;
    u8      ci_Reserved10[36];
    u16     ci_NoOfRebuilds;
    u16     ci_NoOfBkSync;
    u16     ci_NoOfMediaPatrol;
    u16     ci_NoOfRedCheck;
    u16     ci_NoOfOnlineExp;
    u16     ci_NoOfLDInit;
    u16     ci_NoOfMigration;
    u8      ci_Reserved11[32];
    u8      ci_RebuildRate;
    u8      ci_BkSyncRate;
    u8      ci_MediaPatrolRate;
    u8      ci_RedCheckRate;
    u8      ci_OnlineExpRate;
    u8      ci_LDInitRate;
    u8      ci_MigrationRate;
    u8      ci_PDMRate;
    u8      ci_TransitionRate;
    u32     ci_ReassignedBlockThreshold;
    u32     ci_ErrorBlockThreshold;
    u8      ci_Reserved12[27];
    u8      ci_AutoRebuildEnable;
    u8      ci_MediaPatrolEnable;
    u32     ci_MediaPatrolStartTime;
    u32     ci_MediaPatrolStopTime;
    u8      ci_SpinUpDownEnable;
    u8      ci_Reserved13[35];
    u8      ci_SmartLogEnable;
    u8      ci_SmartPollInterval;
    u8      ci_SmartLogLevel;
    u8      ci_EnclosurePollInterval;
    u8      ci_TempThresholdWarning;
    u8      ci_TempThresholdCritical;
    u8      ci_CtrlTempThresholdWarning;
    u8      ci_CtrlTempThresholdCritical;
    u8      ci_NumOfDrivesToSpin;
    u8      ci_TimeBetweenSpinUp;
    u8      ci_CoercionEnable;
    u8      ci_CoercionMethod;
    u8      ci_ElevatorSortingEnable;
    u8      ci_BuzzerEnable;
    u8      ci_LUNMasking;
    u8      ci_Reserved14[25];
    u32     ci_NoOfCmdProcessed;
    u32     ci_NoOfReadCmdProcessed;
    u32     ci_NoOfWriteCmdProcessed;
    u32     ci_NoOfFailedCmd;
    u32     ci_NoOfCtrlReset;
    u8      ci_Reserved15[37];
    u8      ci_MaxDriveForRAID5;
    u16     ci_MaxDriveInDiskArray;
    u8      ci_MaxAxelsForRAID50;
    u8      ci_MaxAxelsForRAID51;
    u8      ci_Reserved16[36];
    u8      ci_MasterMode;
    u8      ci_ActiveMode;
    u8      ci_PartnerActiveMode;
    u8      ci_PartnerStatus;
    u8      ci_Reserved17[36];
    u16     ci_NoOfLogicalDriveReserved;
    u8      ci_Reserved18[36];
    u8      ci_DebugLevel;
    u8      ci_Reserved19[83]; 
}micControllerInfoPage0_t;

/* Possible values for ci_DebugLevel &
   cs_DebugLevel */
#define DBG_MSG_LEVEL_DEBUG   1
#define DBG_MSG_LEVEL_INFO    2
#define DBG_MSG_LEVEL_WARNING 3
#define DBG_MSG_LEVEL_ERROR   4
#define DBG_MSG_LEVEL_FATAL   5
#define DBG_MSG_LEVEL_SILENT  6

typedef struct micControllerInfoPage1
{
    u16     ci1_PageCode;
    u16     ci1_PageLength;
    u16     ci1_DeviceID;
    u8      ci1_PriBootLoaderMajorNo;
    u8      ci1_PriBootLoaderMinorNo;
    u8      ci1_PriBootLoaderBuildNo;
    u8      ci1_PriBootLoaderBuildMonth;
    u8      ci1_PriBootLoaderBuildDate;
    u8      ci1_PriBootLoaderOEMCode;
    u16     ci1_PriBootLoaderBuildYear;
    u8      ci1_PriFWMajorNo;
    u8      ci1_PriFWMinorNo;
    u8      ci1_PriFWBuildNo;
    u8      ci1_PriFWBuildMonth;
    u8      ci1_PriFWBuildDate;
    u8      ci1_PriFWOEMCode;
    u16     ci1_PriFWBuildYear;
    u8      ci1_PriSWMajorNo;
    u8      ci1_PriSWMinorNo;
    u8      ci1_PriSWBuildNo;
    u8      ci1_PriSWBuildMonth;
    u8      ci1_PriSWBuildDate;
    u8      ci1_PriSWOEMCode;
    u16     ci1_PriSWBuildYear;
    u8      ci1_SecBootLoaderMajorNo;
    u8      ci1_SecBootLoaderMinorNo;
    u8      ci1_SecBootLoaderBuildNo;
    u8      ci1_SecBootLoaderBuildMonth;
    u8      ci1_SecBootLoaderBuildDate;
    u8      ci1_SecBootLoaderOEMCode;
    u16     ci1_SecBootLoaderBuildYear;
    u8      ci1_SecFWMajorNo;
    u8      ci1_SecFWMinorNo;
    u8      ci1_SecFWBuildNo;
    u8      ci1_SecFWBuildMonth;
    u8      ci1_SecFWBuildDate;
    u8      ci1_SecFWOEMCode;
    u16     ci1_SecFWBuildYear;
    u8      ci1_SecSWMajorNo;
    u8      ci1_SecSWMinorNo;
    u8      ci1_SecSWBuildNo;
    u8      ci1_SecSWBuildMonth;
    u8      ci1_SecSWBuildDate;
    u8      ci1_SecSWOEMCode;
    u16     ci1_SecSWBuildYear;
}micControllerInfoPage1_t;

typedef struct micControllerInfoPage2
{
    u16     ci2_PageCode;
    u16     ci2_PageLength;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -