1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /***************************************************************************
3 dpti_ioctl.h - description
6 copyright : (C) 2001 by Adaptec
8 See Documentation/scsi/dpti.rst for history, notes, license info
10 ***************************************************************************/
12 /***************************************************************************
15 ***************************************************************************/
17 /***************************************************************************
18 * This file is generated from osd_unix.h *
19 * *************************************************************************/
24 // IOCTL interface commands
27 # define _IOWR(x,y,z) (((x)<<8)|y)
30 # define _IOW(x,y,z) (((x)<<8)|y)
33 # define _IOR(x,y,z) (((x)<<8)|y)
36 # define _IO(x,y) (((x)<<8)|y)
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)
45 #define DPT_SIGNATURE_PACKED _IOR('D',67,dpt_sig_S_Packed)
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)
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)
79 /* Structure Returned From Get Controller Info */
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) */
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))
115 ADAPTER_OBJECT
*AdapterObject
;
116 LARGE_INTEGER DmaLogicalAddress
;
117 PVOID DmaVirtualAddress
;
118 LARGE_INTEGER ReplyLogicalAddress
;
119 PVOID ReplyVirtualAddress
;
121 uINT reserved1
; // Reserved for future expansion
122 uINT reserved2
; // Reserved for future expansion
123 uINT reserved3
; // Reserved for future expansion
127 typedef struct TARGET_BUSY