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