📄 osd_scsi.h
字号:
#if !defined( OSD_SCSI_H )
#define OSD_SCSI_H
#include "gen_typs.h"
#define ocmdEnclosure 0x0
#define ocmdBattery 0x1
#define ocmdGetAdapter 0x5
//add 20050812
#define ocmdFlash 0x6
#define ocmdMemory 0x8
//add end
#define ocmdGetIOP 0x7
/* For ocmdEnclosure: Enclosure Control */
#define CAM_MAX_ENCLOSURE 0x10 /* SX4 is 4,EX8350 is 16 */
#define CAM_MAX_SENSOR_PER_ENCLOSURE 0x06 /* SS4100 has 6 sensors */
#define MAX_VOLTAGES_PER_ENCLOSURE 0x0a
#define MAX_TEMPERATURE_PER_ENCLOSURE 0x0a
#define MAX_FANS_PER_ENCLOSURE 0x0a
#define MAX_CARRIERS_PER_ENCLOSURE 64
#define BASE_ADDRESS_MAX_NUM 6
#define DIMM_TYPE_NORMAL 0
#define DIMM_TYPE_ECC 1
#define DIMM_TYPE_DDR 2
#define DIMM_TYPE_SIMULATED 3
/*
* To avoid inconsistent enum type size on different platforms, we decide to cancel all
* enum definitions in driver and application shared definitions.
*/
#define ENCLOSURE_NONE 0
#define ENCLOSURE_SS4100 1
#define ENCLOSURE_SS1100 2
#define ENCLOSURE_NEC 3
#define ENCLOSURE_FSC 4
#define ENCLOSURE_HPQ 5
#define ENCLOSURE_RN4100 6
#define ENCLOSURE_DS1300 7
// for Aurora firmware
#define ENCLOSURE_SAFTE 6
#define ENCLOSURE_J300 7
#define ENCLOSURE_VITESSE_7153 8
#define ENCLOSURE_VITESSE_7154 9
#define ENCLOSURE_VITESSE_7155 10
#define ENCLOSURE_VITESSE_7157 11
#define ENCLOSURE_VITESSE_7160 12
#define ENCLOSURE_LSI 13
#define ENCLOSURE_OTHER 14
#define SENSOR_NONE 0
#define SENSOR_FAN 1
#define SENSOR_VOLTAGE33 2
#define SENSOR_VOLTAGE5 3
#define SENSOR_VOLTAGE12 4
#define SENSOR_TEMPERATURE 5
typedef struct _APIFRAME_ENCLOSURE
{
U8 EnclosureIndex;
U8 EnclosureType;
U8 NumberOfFan;
U8 NumberOfTemperature;
U8 NumberOfVoltage;
U8 NumberOfCarrier;
U8 Reserved[2];
} APIFRAME_ENCLOSURE, * PAPIFRAME_ENCLOSURE;
typedef struct _APIFRAME_ENCLOSURE_INFORMATION {
APIFRAME_ENCLOSURE Enclosure[CAM_MAX_ENCLOSURE];
} APIFRAME_ENCLOSURE_INFORMATION, *PAPIFRAME_ENCLOSURE_INFORMATION;
typedef struct _APIFRAME_AURORA_ENCLOSURE
{
U8 EnclosureIndex;
U8 NumberOfFan;
U8 NumberOfTemperature;
U8 NumberOfVoltage;
U8 NumberOfCarrier;
U8 EnclosureType;
U8 productRevisionLevel[4];
U8 Reserved[6];
} APIFRAME_ENCLOSURE_AURORA, * PAPIFRAME_ENCLOSURE_AURORA;
typedef struct _APIFRAME_ENCLOSURE_AURORA_INFORMATION {
APIFRAME_ENCLOSURE_AURORA Enclosure[CAM_MAX_ENCLOSURE];
} APIFRAME_ENCLOSURE_AURORA_INFORMATION, *PAPIFRAME_ENCLOSURE_AURORA_INFORMATION;
typedef struct _APIFRAME_ENCLOSURE_MAPDISKID {
U8 EnclosureID;
U8 CarrierID;
U8 Reserved[6];
} APIFRAME_ENCLOSURE_MAPDISKID, * PAPIFRAME_ENCLOSURE_MAPDISKID;
/* For ocmdBattery: Battery Information */
typedef struct _APIFRAME_BATTERY_INFORMATION {
U8 BatteryExist;
U8 BatteryState;
U8 Reserved[6];
U32 Temperature;
U32 Voltage;
} APIFRAME_BATTERY_INFORMATION, *PAPIFRAME_BATTERY_INFORMATION;
#define BATTERY_STATE_CHARGING 0x00
#define BATTERY_STATE_DISCHARGING 0x01
#define BATTERY_STATE_FULLY_CHARGED 0x02
#define BATTERY_STATE_MALFUNCTION 0x03
#define BATTERY_STATE_RECONDITION 0x04
//add 20050812
#if defined(LINUX) || defined(FREEBSD)
#define FLASH_IMAGE_PAGE_SIZE 1024*8
#define FLASH_IMAGE_PAGE_COUNT 256
#else
#define FLASH_IMAGE_PAGE_SIZE 1024*64
#define FLASH_IMAGE_PAGE_COUNT 20
#endif
#define FLASH_IMAGE_MAX_LENGTH (FLASH_IMAGE_PAGE_SIZE*FLASH_IMAGE_PAGE_COUNT)
#define FLASH_FLAG_LAST_PAGE bit(0)
/* Image Header has 64 bytes. Late on, we may need add checksum. */
typedef struct _APIFRAME_FLASH_IMAGE_HEADER
{
U32 ImageSize;
U32 FlashOffset;
U32 Reserved[14];
}APIFRAME_FLASH_IMAGE_HEADER, *PAPIFRAME_FLASH_IMAGE_HEADER;
/* Only the first page has the imageheader.
* For other pages, ImageHeader is used as the ImageBuffer as well.
* So it will contain the image data. */
typedef struct _APIFRAME_FLASH_PAGE
{
APIFRAME_FLASH_IMAGE_HEADER ImageHeader;
U8 Image[FLASH_IMAGE_PAGE_SIZE];
}APIFRAME_FLASH_PAGE, *PAPIFRAME_FLASH_PAGE;
typedef struct _CDB_FLASH
{
U8 OpCode; /* FIXED: svucPASSTHROUGH_API_COMMAND */
U8 SubOpCode; /* FIXED: ocmdFlash */
U8 FlashCommand; /* see FLASH_CONTROL_XXX */
U8 ImageType; /* see FLASH_IMAGE_TYPE_XXX*/
U32 PageSize; /* Size of this page */
U8 PageNumber; /* Page Number */
U8 PageFlag; /* Page Flag: see FLASH_FLAG_XXX */
U8 Reserved[6];
} PACKED CDB_FLASH, buf_space * bpCDB_FLASH;
#define FLASH_CONTROL_SHOWINFORMATION 0
#define FLASH_CONTROL_UPLOADIMAGE 1
#define FLASH_CONTROL_DOWNLOADIMAGE 2
#define FLASH_CONTROL_SETUPUPLOAD 3
//add end
#define ENC_DISK_HEALTHY 0x03
#define ENC_ARRAY_MORPHINGPAUSED 0x0a
#define ENC_DISK_REBUILD 0x06
#define ENC_DISK_NODISK 0x02
#define ENC_DISK_SETDOWN 0x04
#define ENC_DISK_SMARTERROR 0x08
#define ENC_FAN_SPEED_LOWEST 0x1 // Fan at lowest speed
#define ENC_FAN_SPEED_SECOND_LOWEST 0x2 // Fan at second lowest speed
#define ENC_FAN_SPEED_THIRDLOWEST 0x3 // Fan at third lowest speed
#define ENC_FAN_SPEED_INTERMEDIATE 0x4 // Fan at intermediate speed
#define ENC_FAN_SPEED_THIRD_HIGHEST 0x5 // Fan at third highest speed
#define ENC_FAN_SPEED_SECOND_HIGHEST 0x6 // Fan at second highest speed
#define ENC_FAN_SPEED_HIGHEST 0x7 // Fan at highest speed
typedef struct _APIFRAME_VOLTAGE
{
U16 VOLTAGE;
U8 VoltageIndex;
U8 Reserved[5];
}APIFRAME_VOLTAGE;
typedef struct _APIFRAME_VOLTAGE_INFORMATION
{
APIFRAME_VOLTAGE Voltage[MAX_VOLTAGES_PER_ENCLOSURE];
}APIFRAME_VOLTAGE_INFORMATION;
typedef struct _APIFRAME_TEMPERATURE
{
U8 TemperatureIndex;
U8 Temperature;
U8 Reserved[6];
}APIFRAME_TEMPERATURE;
typedef struct _APIFRAME_TEMPERATURE_INFORMATION
{
APIFRAME_TEMPERATURE temperature[MAX_TEMPERATURE_PER_ENCLOSURE];
}APIFRAME_TEMPERATURE_INFORMATION;
typedef struct _APIFRAME_FAN
{
U16 ActualFanSpeed;
U8 SpeedCode;
U8 FanIndex;
U8 Reserved[4];
}APIFRAME_FAN;
typedef struct _APIFRAME_FAN_INFORMATION
{
APIFRAME_FAN Fan[MAX_FANS_PER_ENCLOSURE];
}APIFRAME_FAN_INFORMATION;
typedef struct _APIFRAME_CARRIER_INFORMATION
{
U8 CarrierStatus[MAX_CARRIERS_PER_ENCLOSURE];
}APIFRAME_CARRIER_INFORMATION;
typedef struct _APIFRAME_ENCLOSURE_NUMBER
{
U8 NumberOfEnclosures;
U8 Reserved[7];
}APIFRAME_ENCLOSURE_NUMBER;
#endif /* OSD_SCSI_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -