1 /*************************************************************************** 2 dpti_ioctl.h - description 3 ------------------- 4 begin : Thu Sep 7 2000 5 copyright : (C) 2001 by Adaptec 6 7 See Documentation/scsi/dpti.txt for history, notes, license info 8 and credits 9 ***************************************************************************/ 10 11 /*************************************************************************** 12 * * 13 * This program is free software; you can redistribute it and/or modify * 14 * it under the terms of the GNU General Public License as published by * 15 * the Free Software Foundation; either version 2 of the License, or * 16 * (at your option) any later version. * 17 * * 18 ***************************************************************************/ 19 20 /*************************************************************************** 21 * This file is generated from osd_unix.h * 22 * *************************************************************************/ 23 24 #ifndef _dpti_ioctl_h 25 #define _dpti_ioctl_h 26 27 // IOCTL interface commands 28 29 #ifndef _IOWR 30 # define _IOWR(x,y,z) (((x)<<8)|y) 31 #endif 32 #ifndef _IOW 33 # define _IOW(x,y,z) (((x)<<8)|y) 34 #endif 35 #ifndef _IOR 36 # define _IOR(x,y,z) (((x)<<8)|y) 37 #endif 38 #ifndef _IO 39 # define _IO(x,y) (((x)<<8)|y) 40 #endif 41 /* EATA PassThrough Command */ 42 #define EATAUSRCMD _IOWR('D',65,EATA_CP) 43 /* Set Debug Level If Enabled */ 44 #define DPT_DEBUG _IOW('D',66,int) 45 /* Get Signature Structure */ 46 #define DPT_SIGNATURE _IOR('D',67,dpt_sig_S) 47 #if defined __bsdi__ 48 #define DPT_SIGNATURE_PACKED _IOR('D',67,dpt_sig_S_Packed) 49 #endif 50 /* Get Number Of DPT Adapters */ 51 #define DPT_NUMCTRLS _IOR('D',68,int) 52 /* Get Adapter Info Structure */ 53 #define DPT_CTRLINFO _IOR('D',69,CtrlInfo) 54 /* Get Statistics If Enabled */ 55 #define DPT_STATINFO _IO('D',70) 56 /* Clear Stats If Enabled */ 57 #define DPT_CLRSTAT _IO('D',71) 58 /* Get System Info Structure */ 59 #define DPT_SYSINFO _IOR('D',72,sysInfo_S) 60 /* Set Timeout Value */ 61 #define DPT_TIMEOUT _IO('D',73) 62 /* Get config Data */ 63 #define DPT_CONFIG _IO('D',74) 64 /* Get Blink LED Code */ 65 #define DPT_BLINKLED _IOR('D',75,int) 66 /* Get Statistical information (if available) */ 67 #define DPT_STATS_INFO _IOR('D',80,STATS_DATA) 68 /* Clear the statistical information */ 69 #define DPT_STATS_CLEAR _IO('D',81) 70 /* Get Performance metrics */ 71 #define DPT_PERF_INFO _IOR('D',82,dpt_perf_t) 72 /* Send an I2O command */ 73 #define I2OUSRCMD _IO('D',76) 74 /* Inform driver to re-acquire LCT information */ 75 #define I2ORESCANCMD _IO('D',77) 76 /* Inform driver to reset adapter */ 77 #define I2ORESETCMD _IO('D',78) 78 /* See if the target is mounted */ 79 #define DPT_TARGET_BUSY _IOR('D',79, TARGET_BUSY_T) 80 81 82 /* Structure Returned From Get Controller Info */ 83 84 typedef struct { 85 uCHAR state; /* Operational state */ 86 uCHAR id; /* Host adapter SCSI id */ 87 int vect; /* Interrupt vector number */ 88 int base; /* Base I/O address */ 89 int njobs; /* # of jobs sent to HA */ 90 int qdepth; /* Controller queue depth. */ 91 int wakebase; /* mpx wakeup base index. */ 92 uINT SGsize; /* Scatter/Gather list size. */ 93 unsigned heads; /* heads for drives on cntlr. */ 94 unsigned sectors; /* sectors for drives on cntlr. */ 95 uCHAR do_drive32; /* Flag for Above 16 MB Ability */ 96 uCHAR BusQuiet; /* SCSI Bus Quiet Flag */ 97 char idPAL[4]; /* 4 Bytes Of The ID Pal */ 98 uCHAR primary; /* 1 For Primary, 0 For Secondary */ 99 uCHAR eataVersion; /* EATA Version */ 100 uINT cpLength; /* EATA Command Packet Length */ 101 uINT spLength; /* EATA Status Packet Length */ 102 uCHAR drqNum; /* DRQ Index (0,5,6,7) */ 103 uCHAR flag1; /* EATA Flags 1 (Byte 9) */ 104 uCHAR flag2; /* EATA Flags 2 (Byte 30) */ 105 } CtrlInfo; 106 107 typedef struct { 108 uSHORT length; // Remaining length of this 109 uSHORT drvrHBAnum; // Relative HBA # used by the driver 110 uINT baseAddr; // Base I/O address 111 uSHORT blinkState; // Blink LED state (0=Not in blink LED) 112 uCHAR pciBusNum; // PCI Bus # (Optional) 113 uCHAR pciDeviceNum; // PCI Device # (Optional) 114 uSHORT hbaFlags; // Miscellaneous HBA flags 115 uSHORT Interrupt; // Interrupt set for this device. 116 # if (defined(_DPT_ARC)) 117 uINT baseLength; 118 ADAPTER_OBJECT *AdapterObject; 119 LARGE_INTEGER DmaLogicalAddress; 120 PVOID DmaVirtualAddress; 121 LARGE_INTEGER ReplyLogicalAddress; 122 PVOID ReplyVirtualAddress; 123 # else 124 uINT reserved1; // Reserved for future expansion 125 uINT reserved2; // Reserved for future expansion 126 uINT reserved3; // Reserved for future expansion 127 # endif 128 } drvrHBAinfo_S; 129 130 typedef struct TARGET_BUSY 131 { 132 uLONG channel; 133 uLONG id; 134 uLONG lun; 135 uLONG isBusy; 136 } TARGET_BUSY_T; 137 138 #endif 139 140