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

📄 osd_ioctl.h

📁 RAID卡的测试程序
💻 H
字号:
#if !defined(OSD_IOCTL_H)
#define OSD_IOCTL_H

#include "gen_typs.h"
#include "osd_scsi.h"

/********************************************************
 *				IOCTL	Related							*
 ********************************************************/

#define FASTTRAK_IOCTL_SIGNATURE1   0x54534146
#define FASTTRAK_IOCTL_SIGNATURE2   0x4b415254

/* IOCTL Code */
#ifndef FREEBSD
#define IOCTL_FASTTRAK_GETVERSION           0x00000001   
#endif
/* driver internal use, don't touch it. */
#define IOCTL_FASTTRAK_POWER_STATE_CHANGING		0x10000001

/* Using ULONG instead of U32 for the sake of the API. */
typedef struct tagIOCTL_DRIVERVERSION_FRAME
{
	U32 Major;
	U32 Minor;
	U32 Oem;
	U32 BuildNo;
	U32 Signature[2];
	U8 ConsoleID;
	U8 HostNumber;	/* Linux driver only */
	U8 bReserved[2];
	U32 Reserved[3];
} IOCTL_DRIVERVERSION_FRAME, *PIOCTL_DRIVERVERSION_FRAME;

/********************************************************
 *			SCSI Passthrough API Related				*
 ********************************************************/
#define ocmdEnclosure	0x0
#define ocmdBattery		0x1
#define ocmdGetAdapter	0x5

/* Controller Page */

typedef struct	_VERSION_INFO
{
	U32 VerMajor;
	U32 VerMinor;
	U32 VerOEM;
	U32 VerBuild;
	U32	wReserved[2];
}
VERSION_INFO, *PVERSION_INFO;

typedef struct _APIFRAME_ADAPTER_INFORMATION {
	/*
	 * Defining address as U32 is not compatible with 64 bit system.
	 * I may add another interface to provide 64-bit addresses for AP.
	 */
	U32 BaseAddress[BASE_ADDRESS_MAX_NUM];
	U32 ExpansionROMAddress;

	VERSION_INFO DriverVersion;
	VERSION_INFO BIOSVersion;

	U32 SystemIoBusNumber;
	U32 SlotNumber;
	U32 InterruptLevel;
	U32 InterruptVector;
	U32 VenDevID;				/* Vendor (105A) and Device ID (xxxx) */
	U32 SubVenDevID;			/* Sub-Vendor (105A) and Sub-Device ID (xxxx) */

	U32 DIMMSize;				/* size in MB */
	U8 DIMMType;				/* see DIMM_TYPE_xxx */
	U8 bReserved[3];
	
	U32 ChannelNumber;
	// U32 Reserved;
 	U16 SimulatedDeviceID;
 	U16 SimulatedSubDeviceID;
} APIFRAME_ADAPTER_INFORMATION, *PAPIFRAME_ADAPTER_INFORMATION;

/* For ocmdEnclosure: Enclosure Control */
#define API_ENCLOSURE_SUB_GETENCLOSURE		0x01
#define API_ENCLOSURE_SUB_GETSENSOR			0x02
#define API_ENCLOSURE_SUB_LEDLOCATE			0x03
#define API_ENCLOSURE_SUB_MAPDISKID			0x04
#define API_ENCLOSURE_SUB_LIGHTLED			0x05
#define API_ENCLOSURE_SUB_TRIGGERSENSOR		0x06

#define API_ENCLOSURE_SUB_GET_VOLTAGE		0x07
#define API_ENCLOSURE_SUB_GET_TEMPERATURE	0x08
#define API_ENCLOSURE_SUB_GET_FAN_SPEED		0x09
#define API_ENCLOSURE_SUB_REQUEST_FAN_SPEED 0x0a
#define API_ENCLOSURE_SUB_GETLED_STATUS		0x0b

#define API_ENCLOSURE_UPDATE_FW				0x0d

typedef struct _APIFRAME_SENSOR
{
	U8 SensorType;
	U8 Reserved[3];
	U32	SensorValue;
} APIFRAME_SENSOR, FAR* PAPIFRAME_SENSOR;

typedef struct _APIFRAME_SENSOR_STATUS{
	U16 EnclosureID;
	U16 Reserved;
	APIFRAME_SENSOR Sensor[CAM_MAX_SENSOR_PER_ENCLOSURE];
} APIFRAME_SENSOR_STATUS, *PAPIFRAME_SENSOR_STATUS;

typedef struct _APIFRAME_SENSOR_INFORMATION {
	APIFRAME_SENSOR Sensor[CAM_MAX_SENSOR_PER_ENCLOSURE];
} APIFRAME_SENSOR_INFORMATION, *PAPIFRAME_SENSOR_INFORMATION;

/* Others */
typedef struct _APIFRAME_U32 {
	U32 Value;
} APIFRAME_U32, *PAPIFRAME_U32;

/* Array Hotplug */
#define	IOCTL_PROMISE_REMOVE_DRIVE		0x00010001

typedef struct _IOCTL_PROMISE_REMOVE_DRIVE_FRAME {
	U32	Size;
	U8 	TargetId;
	U8	Action;
	U8	Reserved[2];
} IOCTL_PROMISE_REMOVE_DRIVE_FRAME, *PIOCTL_PROMISE_REMOVE_DRIVE_FRAME;

typedef struct _APIFRAME_IOP_INFORMATION{
	VERSION_INFO FirmwareVersion;

	U32	ProcessType;
	U32 Reserved[15];
} APIFRAME_IOP_INFORMATION, *PAPIFRAME_IOP_INFORMATION;


#endif /* OSD_IOCTL_H */

⌨️ 快捷键说明

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