| /*************************************************************************** | |
| dpti_ioctl.h - description | |
| ------------------- | |
| begin : Thu Sep 7 2000 | |
| copyright : (C) 2001 by Adaptec | |
| See Documentation/scsi/dpti.txt for history, notes, license info | |
| and credits | |
| ***************************************************************************/ | |
| /*************************************************************************** | |
| * * | |
| * This program is free software; you can redistribute it and/or modify * | |
| * it under the terms of the GNU General Public License as published by * | |
| * the Free Software Foundation; either version 2 of the License, or * | |
| * (at your option) any later version. * | |
| * * | |
| ***************************************************************************/ | |
| /*************************************************************************** | |
| * This file is generated from osd_unix.h * | |
| * *************************************************************************/ | |
| #ifndef _dpti_ioctl_h | |
| #define _dpti_ioctl_h | |
| // IOCTL interface commands | |
| #ifndef _IOWR | |
| # define _IOWR(x,y,z) (((x)<<8)|y) | |
| #endif | |
| #ifndef _IOW | |
| # define _IOW(x,y,z) (((x)<<8)|y) | |
| #endif | |
| #ifndef _IOR | |
| # define _IOR(x,y,z) (((x)<<8)|y) | |
| #endif | |
| #ifndef _IO | |
| # define _IO(x,y) (((x)<<8)|y) | |
| #endif | |
| /* EATA PassThrough Command */ | |
| #define EATAUSRCMD _IOWR('D',65,EATA_CP) | |
| /* Set Debug Level If Enabled */ | |
| #define DPT_DEBUG _IOW('D',66,int) | |
| /* Get Signature Structure */ | |
| #define DPT_SIGNATURE _IOR('D',67,dpt_sig_S) | |
| #if defined __bsdi__ | |
| #define DPT_SIGNATURE_PACKED _IOR('D',67,dpt_sig_S_Packed) | |
| #endif | |
| /* Get Number Of DPT Adapters */ | |
| #define DPT_NUMCTRLS _IOR('D',68,int) | |
| /* Get Adapter Info Structure */ | |
| #define DPT_CTRLINFO _IOR('D',69,CtrlInfo) | |
| /* Get Statistics If Enabled */ | |
| #define DPT_STATINFO _IO('D',70) | |
| /* Clear Stats If Enabled */ | |
| #define DPT_CLRSTAT _IO('D',71) | |
| /* Get System Info Structure */ | |
| #define DPT_SYSINFO _IOR('D',72,sysInfo_S) | |
| /* Set Timeout Value */ | |
| #define DPT_TIMEOUT _IO('D',73) | |
| /* Get config Data */ | |
| #define DPT_CONFIG _IO('D',74) | |
| /* Get Blink LED Code */ | |
| #define DPT_BLINKLED _IOR('D',75,int) | |
| /* Get Statistical information (if available) */ | |
| #define DPT_STATS_INFO _IOR('D',80,STATS_DATA) | |
| /* Clear the statistical information */ | |
| #define DPT_STATS_CLEAR _IO('D',81) | |
| /* Get Performance metrics */ | |
| #define DPT_PERF_INFO _IOR('D',82,dpt_perf_t) | |
| /* Send an I2O command */ | |
| #define I2OUSRCMD _IO('D',76) | |
| /* Inform driver to re-acquire LCT information */ | |
| #define I2ORESCANCMD _IO('D',77) | |
| /* Inform driver to reset adapter */ | |
| #define I2ORESETCMD _IO('D',78) | |
| /* See if the target is mounted */ | |
| #define DPT_TARGET_BUSY _IOR('D',79, TARGET_BUSY_T) | |
| /* Structure Returned From Get Controller Info */ | |
| typedef struct { | |
| uCHAR state; /* Operational state */ | |
| uCHAR id; /* Host adapter SCSI id */ | |
| int vect; /* Interrupt vector number */ | |
| int base; /* Base I/O address */ | |
| int njobs; /* # of jobs sent to HA */ | |
| int qdepth; /* Controller queue depth. */ | |
| int wakebase; /* mpx wakeup base index. */ | |
| uINT SGsize; /* Scatter/Gather list size. */ | |
| unsigned heads; /* heads for drives on cntlr. */ | |
| unsigned sectors; /* sectors for drives on cntlr. */ | |
| uCHAR do_drive32; /* Flag for Above 16 MB Ability */ | |
| uCHAR BusQuiet; /* SCSI Bus Quiet Flag */ | |
| char idPAL[4]; /* 4 Bytes Of The ID Pal */ | |
| uCHAR primary; /* 1 For Primary, 0 For Secondary */ | |
| uCHAR eataVersion; /* EATA Version */ | |
| uINT cpLength; /* EATA Command Packet Length */ | |
| uINT spLength; /* EATA Status Packet Length */ | |
| uCHAR drqNum; /* DRQ Index (0,5,6,7) */ | |
| uCHAR flag1; /* EATA Flags 1 (Byte 9) */ | |
| uCHAR flag2; /* EATA Flags 2 (Byte 30) */ | |
| } CtrlInfo; | |
| typedef struct { | |
| uSHORT length; // Remaining length of this | |
| uSHORT drvrHBAnum; // Relative HBA # used by the driver | |
| uINT baseAddr; // Base I/O address | |
| uSHORT blinkState; // Blink LED state (0=Not in blink LED) | |
| uCHAR pciBusNum; // PCI Bus # (Optional) | |
| uCHAR pciDeviceNum; // PCI Device # (Optional) | |
| uSHORT hbaFlags; // Miscellaneous HBA flags | |
| uSHORT Interrupt; // Interrupt set for this device. | |
| # if (defined(_DPT_ARC)) | |
| uINT baseLength; | |
| ADAPTER_OBJECT *AdapterObject; | |
| LARGE_INTEGER DmaLogicalAddress; | |
| PVOID DmaVirtualAddress; | |
| LARGE_INTEGER ReplyLogicalAddress; | |
| PVOID ReplyVirtualAddress; | |
| # else | |
| uINT reserved1; // Reserved for future expansion | |
| uINT reserved2; // Reserved for future expansion | |
| uINT reserved3; // Reserved for future expansion | |
| # endif | |
| } drvrHBAinfo_S; | |
| typedef struct TARGET_BUSY | |
| { | |
| uLONG channel; | |
| uLONG id; | |
| uLONG lun; | |
| uLONG isBusy; | |
| } TARGET_BUSY_T; | |
| #endif | |