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

📄 i2types.h

📁 RAID卡的测试程序
💻 H
📖 第 1 页 / 共 3 页
字号:
/* bga scheduler */
typedef bga_schedules_t req_data_bga_schedule_t;

/* Enclosure and FRU */
typedef struct
{
    DataBufferHeader_t rdei_dbhHeader;
    MEI_t rdei_meiEnclInfo;
} req_data_encl_info_t;

typedef struct
{
    DataBufferHeader_t rdes_dbhHeader;
    MGSS_t rdes_mgssEnclSettings;
} req_data_encl_settings_t;

typedef struct
{
    DataBufferHeader_t rdbi_dbhHeader;
    MBI_t rdbi_mbiBatInfo;
} req_data_bat_info_t;

typedef struct
{
    DataBufferHeader_t rdfi_dbhHeader;
    MFRU_t rdfi_mfruFRUInfo;
} req_data_fru_info_t;

/* user management */
typedef struct
{
    DataBufferHeader_t rdud_dbhHeader;
} req_data_user_info_t;

typedef struct
{
    u8 rpu_u8Username[MAX_USER_NAME_LENGTH]; 
} req_param_user_name_t;

typedef struct
{
    user_info_t rpua_uiUser;
} req_param_user_info_t;

typedef struct
{
    user_info_t rpuam_uiUser;
} req_param_user_add_mod_t;

typedef struct
{
    u8 rpp_u8Username[MAX_USER_NAME_LENGTH];
    u8 rpp_u8OldPassword[MAX_PASSWORD_LENGTH];
    u8 rpp_u8NewPassword[MAX_PASSWORD_LENGTH];
} req_param_pwd_t;

/* lock management */
typedef struct
{
    boolean_t rpl_bExtendLock;
    boolean_t rpl_bForceLock;
    u8 rpl_u8LockKey;
    u8 rpl_u8Reserved;
    u32 rpl_u32LockTime; /* in number of seconds */
} req_param_lock_t;

typedef struct
{
    boolean_t rdl_bOwner;
    u8 rdl_u8LockKey;
    u8 rdl_u8Reserved[6];
    u64 rdl_u64ExpirationTime; /* in number of seconds since 0:0:0 Jan 1, 1970 */
} req_data_lock_t;

typedef struct 
{
    DataBufferHeader_t rdet_dbhHeader;
    micGetErrTableData_t rdet_micTable;
} req_data_error_table_t;

/* sw component management */
typedef struct
{
    u8 rsdi_u8NumDaemon;
    swmgt_daemon_info_t rsdi_sdiDaemonInfo[MAX_NUM_DAEMON];
} req_swmgt_daemon_info_t;

typedef struct
{
    u8 rpd_u8DaemonName[MAX_DAEMON_NAME_LEN];
    u8 rpd_u8DameonStatusType;
} req_param_daemon_t;

/* email event notifiy */
typedef struct
{
    email_config_t rec_ecEmailConfig;
} req_email_config_t;

typedef struct
{
    u8 rup_u8Username[MAX_USER_NAME_LENGTH];
    user_preference_t rup_upUserPreference;
} req_user_preference_t;

/* import export */
typedef struct
{
    export_param_t re_epExport;    
} req_export_t;

typedef struct
{
    import_param_t rip_ipImport;
} req_import_param_t;

typedef struct
{
    import_status_t rid_isImport;
} req_import_data_t;

/* statistics */
typedef struct
{
    DataBufferHeader_t rdss_dbhHeader;
    micStatsSubsystem_t rdss_micStats;
} req_data_subsys_stats_t;

typedef struct
{
    DataBufferHeader_t rdcs_dbhHeader;
    micStatsController_t rdcs_micStats;
} req_data_ctrl_stats_t;

typedef struct
{
    DataBufferHeader_t rdes_dbhHeader;
    micStatsEnclosure_t rdes_micStats;
} req_data_encl_stats_t;

typedef struct
{
    DataBufferHeader_t rdps_dbhHeader;
    micStatsPhysicalDrive_t rdps_micStats;
} req_data_phydrv_stats_t;

typedef struct
{
    DataBufferHeader_t rdls_dbhHeader;
    micStatsLogicalDrive_t rdls_micStats;
} req_data_logdrv_stats_t;

typedef struct
{
    DataBufferHeader_t rdt_dbhHeader;
    micCtlTime_t rdt_micTime;
} req_data_time_t;


/*Following  added for HBA driver version */
/*
typedef struct
{
	u8 rddi_u8DRVMajorNo;
    u8 rddi_u8DRVMinorNo;
    u8 rddi_u8DRVBuildNo;
    u8 rddi_u8DRVBuildMonth;
    u8 rddi_u8DRVBuildDate;
    u8 rddi_u8DRVOEMCode;
    u16 rddi_u8DRVBuildYear;
    u8 rddi_u8Reserved[56];   
} req_data_driver_info_t;
*/
typedef struct
{
	u32 rddi_u32DRVMajorNo;
    u32 rddi_u32DRVMinorNo;
    u32 rddi_u32DRVOEMCode;
    u32 rddi_u32DRVBuildNo;
    u8 rddi_u8DRVBuildDate;
    u8 rddi_u8DRVBuildMonth;
    u16 rddi_u8DRVBuildYear;
    u8 rddi_u8Reserved[4];   
} req_data_driver_info_t;

typedef struct req_param_hbaextent_ary_op
{
    u16 eaop_u16ExtentIndex;
    u16 eaop_u16PhyDrvID;
    u16 eaop_u16LogDrvID;
    u16 eaop_reserved;
} req_param_hbaextent_ary_op_t;

typedef struct req_param_hbaextent_ids
{
    u32 eid_u32ExtentIndex;
    u32 eid_u32PhyDrvID;
} req_param_hbaextent_ids_t;

#define MIGRATION_HBA_TYPE_EXTENT	0
#define MIGRATION_HBA_TYPE_DISK		1

typedef struct
{
    u16 rphbam_u16ArrayId;
    u16 rphbam_u16NumOfPd;
    u16 rphbam_u16RaidLevel;
    u16 rphbam_u16StripeSize; /* in Block */
	u8	rphbam_u8SubArrayCount;
	u8	rphbam_u8MfParityCount;
	u8	rphbam_u8MfSymmetric;
	u8	rphbam_u8MigrationType; /* */
	u16	rphbam_u16MfShift;
	u16	rphbam_Reserved2;
    req_param_hbaextent_ids_t rphbam_rphIDInfo[MAX_PHYDRV_PER_ARRAY];	//extent information 
} req_param_hba_migrate_t;

#define DIMM_HBA_TYPE_NORMAL	0
#define DIMM_HBA_TYPE_ECC		1
#define DIMM_HBA_TYPE_DDR		2
#define DIMM_HBA_TYPE_SIMULATED	3 

#define LD_PARAM_FORMAT_EXTENTS			0x00
#define LD_PARAM_FORMAT_LOGICAL_DEVICE	0x03

/* Create Array Flags */
#define LD_F_QUICK_INIT		0x01	/* init flags are exclusive */
#define LD_F_FOREGRND_INIT	0x02
#define LD_F_BACKGRND_INIT	0x04
#define LD_F_SECTOR_SIZE_VALID 0x08

/* Create Array Flags */
#define LD_G_ROUNDING_NONE		0x00	/* Gigabyte rounding flags are exclusive */
#define LD_G_ROUNDING_GB		0x01
#define LD_G_ROUNDING_10GB		0x02
#define LD_G_ROUNDING_CUSTOM	0x03

typedef struct req_param_hbaarray_add
{
    u32 rphaa_u32StripeSize;     /* in blocks */
    u32 rphaa_u32LDAttrib;       /* read/write policy */
    u32 rphaa_u32SizeLow;     /* for Linux */
    u32 rphaa_u32SizeHigh;       /* for Linux */
    u64 rphaa_u64Size;           /* array size specified by the user */
    u8 rphaa_u8Name[MAX_LD_NAME_BYTES * 2];
    u16 rphaa_u16RaidLevel;      /* ignored if AutoRaidLevel is set to TRUE */
    u8 rphaa_u8Init;       /* init the logical after creating it, use LD_F__XXXX for NAPA */
	u8 rphaa_u8EnableDiskWriteCache;
	u8 rphaa_u8RoundingScheme;	// if 1 is to set gigibyte rounding, 0 is not to set gigibyte rounding
	u8 rphaa_u8Format;	// number of extents needed for the array
    u8 rphaa_u8NumberOfPd;
	u8 rphaa_u8MFParityCount;
	u8 rphaa_u8MFSymmetric;
	i16 rphaa_i16MFShift;
	u8 rphaa_u8Raid50SubArrayCount;
	u8 rphaa_reserved[3];
	u8 rphaa_u8IsSectorCountSize; // if 1, rphaa_u64Size is array sector count, 0 is array size
	u32 rphaa_u32SectorSize;
    req_param_hbaextent_ids_t rphaa_rphIDInfo[MAX_PHYDRV_PER_ARRAY];	//extent information 
} req_param_hbaarray_add_t;


#define _ATAPTI_GET_RESULT	0x00
#define _ATAPTI_ND			0x01	/* non-data */
#define _ATAPTI_PI			0x02	/* PIO IN */
#define _ATAPTI_PO			0x03	/* PIO OUT */
#define _ATAPTI_DR			0x04	/* Device Reset, not supported yet */
#define _ATAPTI_DD			0x05	/* Execute Device Diagnostic, not supported yet */
#define _ATAPTI_DM			0x06	/* DMA command */
#define _ATAPTI_DMO			0x07	/* overlapped/queued DMA, not supported yet */
#define _ATAPTI_P			0x08	/* packet command, not supported yet */
#define _ATAPTI_VS			0x09	/* vendor specific, not supported yet */

typedef struct req_param_ata_passthru
{
	u8	rpap_u8DiskID;
	u8	rpap_u8Proto;
	u8	rpap_u8Command;
	u8	rpap_u8reserved;
	u32	rpap_u32Lba;
	u16 rpap_u16SectorCount;
	u16	rpap_u16Feature;
	u16	rpap_u16LbaHigh;
	u16 rpap_u16reserved;
	u32	rpap_u32DataBufferSize;
	u8*	rpap_pu8DataBuffer;
#ifndef SUPPORT_64_BIT
	u8* rpap_pu8Padding;    /* pad to 8 byte aligned */
#endif
}req_param_ata_passthru_t;

typedef struct req_data_ata_regs
{
	u16 rdar_u16Feature;
	u16 rdar_u16SectorCount;
	u16 rdar_u16LbaHigh;
	u8  rdar_u8Status;
	u8  rdar_u8Error;
	u32 rdar_u32LbaLow;
	u32 rdar_u32Reserved;
}req_data_ata_regs_t;


//

#define	_CAM_ST_PORTREMAP					0x01
#define	_CAM_ST_BUZZERENABLED				0x02 /* Enable board buzzer */
#define	_CAM_ST_DISABLE_BOOT_OOBCOMRESET	0x04 /* Hdds spin-up disabled when power up */

#define	_CAM_PC_DISABLE_NCQ_TCQ	0x00000001
#define _CAM_PC_DISABLE_GEN_II	0x00000002
#define _CAM_PC_PHY_MODE_VALID	0x00000004

#define	_CAM_GET_SET_GLOBAL	(-1)

#define _CAM_SETTING_CMD_GET_SAVED		0x00
#define _CAM_SETTING_CMD_GET_CURRENT	0x01
#define _CAM_SETTING_CMD_SET			0x02
#define _CAM_SETTING_CMD_GLOBAL			0x80	/* PortId is invalid if global set */

typedef struct req_param_cam_nv_global_port
{
	u32 rcng_u32CamStatus;			/* Cam Status for global setting */
	u32 rcng_u32PortControl;
	u32 rcng_u32PhyMode2;			/* valid if PortControl.CAM_PC_PHY_MODE_VALID set */
	u32 rcng_u32Reserved[9];
}req_param_cam_nv_global_port_t, req_data_cam_nv_global_port_t;

//


// for enclosure
#define CAM_MAX_ENC						0x10	/* SX4 is 4,EX8350 is 16 */
#define CAM_MAX_SENSOR_PER_ENC			0x06	/* SS4100 has 6 sensors */
#define MAX_VOLTAGES_PER_ENC			0x0a
#define MAX_TEMPERATURE_PER_ENC			0x0a
#define MAX_FANS_PER_ENC				0x0a
#define MAX_CARRIERS_PER_ENC			64

#define ENCLOSURE_DISK_HEALTHY			  0x03
#define ENCLOSURE_ARRAY_MORPHINGPAUSED    0x0a
#define ENCLOSURE_DISK_REBUILD            0x06
#define ENCLOSURE_DISK_NODISK             0x02
#define ENCLOSURE_DISK_SETDOWN            0x04
#define ENCLOSURE_DISK_SMARTERROR         0x08
#define ENCLOSURE_DISK_PRESENT_OOB_FAILED 0x0f

#define ENCLOSURE_FAN_SPEED_LOWEST			0x1		// Fan at lowest speed
#define ENCLOSURE_FAN_SPEED_SECOND_LOWEST	0x2		// Fan at second lowest speed
#define ENCLOSURE_FAN_SPEED_THIRDLOWEST		0x3     // Fan at third lowest speed
#define ENCLOSURE_FAN_SPEED_INTERMEDIATE    0x4		// Fan at intermediate speed
#define ENCLOSURE_FAN_SPEED_THIRD_HIGHEST	0x5		// Fan at third highest speed
#define ENCLOSURE_FAN_SPEED_SECOND_HIGHEST	0x6     // Fan at second highest speed
#define ENCLOSURE_FAN_SPEED_HIGHEST			0x7     // Fan at highest speed

#define ENCLOSURE_SENSOR_UNKNOWN		0x0
#define ENCLOSURE_SENSOR_FAN			0x1

typedef struct req_data_enc_voltage
{
	u8 rdev_u8VoltageIndex;
	u16 rdev_u8Voltage;
	u8 rdev_u8Reserved[5];
}req_data_enc_voltage_t;

typedef struct req_data_enc_temperature
{
	u8  rdet_u8TemperatureIndex;
	u8  rdet_u8Temperature;
	u8  rdet_u8Reserved[6];
}req_data_enc_temperature_t;

typedef struct req_data_enc_fan
{
	u8 rdef_u8FanIndex;
	u8 rdef_u8SpeedCode;
	u16 rdef_u16ActualFanSpeed;
	u8 rdef_u8Reserved[4];
}req_data_enc_fan_t;

typedef struct req_data_enc_carrier
{
	u8 rdec_u8CarrierLEDStatus;
	u8 rdec_u8Reserved[7];
}req_data_enc_carrier_t;

typedef struct req_data_enc_info
{
	u8	rdei_u8VlotageCount;
	u8	rdei_u8FanCount;
	u8	rdei_u8TemperatureCount;
	u8	rdei_u8CarrierCount;
	u8	rdei_u8Reserved[4];
	req_data_enc_voltage_t		rdei_voltage[MAX_VOLTAGES_PER_ENC];
	req_data_enc_temperature_t	rdei_temperature[MAX_TEMPERATURE_PER_ENC];
	req_data_enc_fan_t			rdei_fan[MAX_FANS_PER_ENC];
	req_data_enc_carrier_t		rdei_carrier[MAX_CARRIERS_PER_ENC];
}req_data_encaurora_info_t;

typedef struct req_param_enclosure_setting
{
	u8 rpes_u8EnclosureID;
	u8 rpes_u8SensorID;
	u8 rpes_u8DeviceType;		// Fan, Carrier...
	u8 rpes_u8Value;
	u8 rpes_u8Reserved[12];
}req_param_enclosure_setting_t;
//


#define AUTHORIZE(req, grp) ((grp >= req)?PIERR_NO_ERROR:PIERR_NOT_AUTHORIZED)

typedef struct
{   
    time_t s_tLoginTimeStamp;
    time_t s_tLogoutTimeStamp;
    u8 s_u8UserGroupId;
    u8 s_u8InternalReserved[15]; /* reserved for internal use */
    u8 s_u8Reserved[16];
    u8 s_u8Username[MAX_USER_NAME_LENGTH];
    u8 s_u8SessionInterface[MAX_INTERFACE_LENGTH];
} session_info_t;

#define MAX_BYPASS_CMD_CDB_LENGTH 128/*[cz]32 */
#define MAX_BYPASS_CMD_SENSE_LENGTH 64

typedef struct
{
    u32 bc_u32Status;      /* command completion status */
    u32 bc_u32Timeout;    
    u8 bc_u8Reserved[6];   /* reserved for 8 byte alignment */
    u8 bc_u8DataDirection; /* data direction: I2IPC_RW_NONE, I2IPC_RW_READ, I2IPC_RW_WRITE */
    u8 bc_u8CDBLength;   /* the actual length of the CDB */
    u8 bc_u8CDB[MAX_BYPASS_CMD_CDB_LENGTH]; /* by-pass command CDB */
    u32 bc_u32SenseLength; /* the expected sense data length */
    u32 bc_u32ReturnedSenseLength; /* length of the sense retrieved */
    u8 bc_u8SenseBuffer[MAX_BYPASS_CMD_SENSE_LENGTH]; /* sense buffer */
    u32 bc_u32DataLength;  /* length of output data or expected input data */
    u32 bc_u32ReturnedDataLength; /* length of the data retrieved */
    u8 * bc_pu8DataBuffer; /* the data buffer */
#ifndef SUPPORT_64_BIT
    u8 * bc_pu8Padding;    /* pad to 8 byte aligned */
#endif
} bypass_cmd_t;


typedef struct
{
	u8 hni_u8Name[16];
	u8 hni_u8IPAddress[16];
	u8 hni_u8Reserved[32];
} host_network_info_t;

typedef struct
{
	u8 rdhi_u8HostName[64];   /* null teminated */
	u8 rdhi_u8HostOSName[128]; /* null teminated */
	u8 rdhi_u8Reserved[256];
	u32 rdhi_u16NumOfNetwork;
	u32 rdhi_u32Reserved2;
	host_network_info_t rdhi_hniNetwork[1];
} req_data_host_info_t;

/* --- functional routines ------------------------------------------------- */

boolean_t isDeviceIdEqual(const device_id_t di1, const device_id_t di2);
boolean_t isHBADeviceId(const device_id_t di);
void copyDeviceId(device_id_t * pdiDest, const device_id_t diSource);

boolean_t isDeviceObjectIdEqual(const device_object_identifier_t * pDoi1, 
    const device_object_identifier_t * pDoi2);
void copyDeviceObjectIdentifier(device_object_identifier_t * pDoiDest,
    const device_object_identifier_t * pDoiSource);

boolean_t isDiscoverPathEqual(const discover_path_t * pPath1,
    const discover_path_t * pPath2);
boolean_t isISCSIDiscoverPathEqual(const discover_path_iscsi_t * pPath1,
    const discover_path_iscsi_t * pPath2);
boolean_t isSCSIDiscoverPathEqual(const discover_path_scsi_t * pPath1,
    const discover_path_scsi_t * pPath2);
    
#endif /* I2_TYPES_H */

/******************************************************************************
 * Change Log
 *
 * $Log: i2types.h,v $
 * Revision 1.1  2004/03/24 03:24:12  weny
 * I2 API porting
 *
 *
 *****************************************************************************/

⌨️ 快捷键说明

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