| /*************************************************************************** |
| 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 |
| |