📄 osd_ioctl.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 + -