[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]

FreeBSD/Linux Kernel Cross Reference
sys/sys/aac_ioctl.h

Version: -  FREEBSD  -  FREEBSD7  -  FREEBSD70  -  FREEBSD6  -  FREEBSD63  -  FREEBSD62  -  FREEBSD61  -  FREEBSD60  -  FREEBSD5  -  FREEBSD55  -  FREEBSD54  -  FREEBSD53  -  FREEBSD52  -  FREEBSD51  -  FREEBSD50  -  FREEBSD4  -  FREEBSD3  -  FREEBSD22  -  linux-2.6  -  linux-2.4.22  -  MK83  -  MK84  -  PLAN9  -  DFBSD  -  NETBSD  -  NETBSD4  -  NETBSD3  -  NETBSD20  -  OPENBSD  -  xnu-517  -  xnu-792  -  xnu-792.6.70  -  xnu-1228  -  OPENSOLARIS  -  minix-3-1-1  -  TRUSTEDBSD-SEBSD  -  FREEBSD-LIBC  -  FREEBSD7-LIBC  -  FREEBSD6-LIBC  -  GLIBC27 
SearchContext: -  none  -  excerpts  -  bigexcerpts 

  1 /*-
  2  * Copyright (c) 2000 Michael Smith
  3  * Copyright (c) 2000 Scott Long
  4  * Copyright (c) 2000 BSDi
  5  * All rights reserved.
  6  *
  7  * Redistribution and use in source and binary forms, with or without
  8  * modification, are permitted provided that the following conditions
  9  * are met:
 10  * 1. Redistributions of source code must retain the above copyright
 11  *    notice, this list of conditions and the following disclaimer.
 12  * 2. Redistributions in binary form must reproduce the above copyright
 13  *    notice, this list of conditions and the following disclaimer in the
 14  *    documentation and/or other materials provided with the distribution.
 15  *
 16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 26  * SUCH DAMAGE.
 27  *
 28  *      $FreeBSD: src/sys/sys/aac_ioctl.h,v 1.13 2008/03/28 19:07:25 emaste Exp $
 29  */
 30 
 31 /*
 32  * Command queue statistics
 33  */
 34 #define AACQ_FREE       0
 35 #define AACQ_BIO        1
 36 #define AACQ_READY      2
 37 #define AACQ_BUSY       3
 38 #define AACQ_COUNT      4       /* total number of queues */
 39 
 40 struct aac_qstat {
 41         u_int32_t       q_length;
 42         u_int32_t       q_max;
 43 };
 44 
 45 /*
 46  * Statistics request
 47  */
 48 union aac_statrequest {
 49         u_int32_t               as_item;
 50         struct aac_qstat        as_qstat;
 51 };
 52 
 53 #define AACIO_STATS             _IOWR('T', 101, union aac_statrequest)
 54 
 55 /*
 56  * Ioctl commands likely to be submitted from a Linux management application.
 57  * These bit encodings are actually descended from Windows NT.  Ick.
 58  */
 59 
 60 #define CTL_CODE(devType, func, meth, acc) (((devType) << 16) | ((acc) << 14) | ((func) << 2) | (meth))
 61 #define METHOD_BUFFERED                 0
 62 #define METHOD_IN_DIRECT                1
 63 #define METHOD_OUT_DIRECT               2
 64 #define METHOD_NEITHER                  3
 65 #define FILE_ANY_ACCESS                 0
 66 #define FILE_READ_ACCESS                ( 0x0001 )
 67 #define FILE_WRITE_ACCESS               ( 0x0002 )
 68 #define FILE_DEVICE_CONTROLLER          0x00000004
 69 
 70 #define FSACTL_LNX_SENDFIB              CTL_CODE(FILE_DEVICE_CONTROLLER, 2050, \
 71                                         METHOD_BUFFERED, FILE_ANY_ACCESS)
 72 #define FSACTL_LNX_SEND_RAW_SRB         CTL_CODE(FILE_DEVICE_CONTROLLER, 2067, \
 73                                         METHOD_BUFFERED, FILE_ANY_ACCESS)
 74 #define FSACTL_LNX_GET_COMM_PERF_DATA   CTL_CODE(FILE_DEVICE_CONTROLLER, 2084, \
 75                                         METHOD_BUFFERED, FILE_ANY_ACCESS)
 76 #define FSACTL_LNX_OPENCLS_COMM_PERF_DATA CTL_CODE(FILE_DEVICE_CONTROLLER, \
 77                                         2085, METHOD_BUFFERED, FILE_ANY_ACCESS)
 78 #define FSACTL_LNX_OPEN_GET_ADAPTER_FIB CTL_CODE(FILE_DEVICE_CONTROLLER, 2100, \
 79                                         METHOD_BUFFERED, FILE_ANY_ACCESS)
 80 #define FSACTL_LNX_GET_NEXT_ADAPTER_FIB CTL_CODE(FILE_DEVICE_CONTROLLER, 2101, \
 81                                         METHOD_BUFFERED, FILE_ANY_ACCESS)
 82 #define FSACTL_LNX_CLOSE_GET_ADAPTER_FIB CTL_CODE(FILE_DEVICE_CONTROLLER, \
 83                                         2102, METHOD_BUFFERED, FILE_ANY_ACCESS)
 84 #define FSACTL_LNX_CLOSE_ADAPTER_CONFIG CTL_CODE(FILE_DEVICE_CONTROLLER, 2104, \
 85                                         METHOD_BUFFERED, FILE_ANY_ACCESS)
 86 #define FSACTL_LNX_OPEN_ADAPTER_CONFIG  CTL_CODE(FILE_DEVICE_CONTROLLER, 2105, \
 87                                         METHOD_BUFFERED, FILE_ANY_ACCESS)
 88 #define FSACTL_LNX_MINIPORT_REV_CHECK   CTL_CODE(FILE_DEVICE_CONTROLLER, 2107, \
 89                                         METHOD_BUFFERED, FILE_ANY_ACCESS)
 90 #define FSACTL_LNX_QUERY_ADAPTER_CONFIG CTL_CODE(FILE_DEVICE_CONTROLLER, 2113, \
 91                                         METHOD_BUFFERED, FILE_ANY_ACCESS)
 92 #define FSACTL_LNX_GET_PCI_INFO         CTL_CODE(FILE_DEVICE_CONTROLLER, 2119, \
 93                                         METHOD_BUFFERED, FILE_ANY_ACCESS)
 94 #define FSACTL_LNX_FORCE_DELETE_DISK    CTL_CODE(FILE_DEVICE_CONTROLLER, 2120, \
 95                                         METHOD_NEITHER, FILE_ANY_ACCESS)
 96 #define FSACTL_LNX_AIF_THREAD           CTL_CODE(FILE_DEVICE_CONTROLLER, 2127, \
 97                                         METHOD_NEITHER, FILE_ANY_ACCESS)
 98 #define FSACTL_LNX_SEND_LARGE_FIB       CTL_CODE(FILE_DEVICE_CONTROLLER, 2138, \
 99                                         METHOD_BUFFERED, FILE_ANY_ACCESS)
100 #define FSACTL_LNX_GET_FEATURES         CTL_CODE(FILE_DEVICE_CONTROLLER, 2139, \
101                                         METHOD_BUFFERED, FILE_ANY_ACCESS)
102 
103 /* Why these don't follow the previous convention, I don't know */
104 #define FSACTL_LNX_NULL_IO_TEST         0x43
105 #define FSACTL_LNX_SIM_IO_TEST          0x53
106 #define FSACTL_LNX_DOWNLOAD             0x83
107 #define FSACTL_LNX_GET_VAR              0x93
108 #define FSACTL_LNX_SET_VAR              0xa3
109 #define FSACTL_LNX_GET_FIBTIMES         0xb3
110 #define FSACTL_LNX_ZERO_FIBTIMES        0xc3
111 #define FSACTL_LNX_DELETE_DISK          0x163
112 #define FSACTL_LNX_QUERY_DISK           0x173
113 
114 /* Ok, here it gets really lame */
115 #define FSACTL_LNX_PROBE_CONTAINERS     2131    /* Just guessing */
116 
117 /* Do the native version of the ioctls.  Since the BSD encoding scheme
118  * conflicts with the 'standard' AAC encoding scheme, the resulting numbers
119  * will be different.  The '8' comes from the fact that the previous scheme
120  * used 12 bits for the number, with the the 12th bit being the only set
121  * bit above bit 8.  Thus the value of 8, with the lower 8 bits holding the
122  * command number.  9 is used for the odd overflow case.
123  */
124 #define FSACTL_SENDFIB                  _IO('8', 2)
125 #define FSACTL_SEND_RAW_SRB             _IO('8', 19)
126 #define FSACTL_GET_COMM_PERF_DATA       _IO('8', 36)
127 #define FSACTL_OPENCLS_COMM_PERF_DATA   _IO('8', 37)
128 #define FSACTL_OPEN_GET_ADAPTER_FIB     _IO('8', 52)
129 #define FSACTL_GET_NEXT_ADAPTER_FIB     _IO('8', 53)
130 #define FSACTL_CLOSE_GET_ADAPTER_FIB    _IO('8', 54)
131 #define FSACTL_CLOSE_ADAPTER_CONFIG     _IO('8', 56)
132 #define FSACTL_OPEN_ADAPTER_CONFIG      _IO('8', 57)
133 #define FSACTL_MINIPORT_REV_CHECK       _IO('8', 59)
134 #define FSACTL_QUERY_ADAPTER_CONFIG     _IO('8', 65)
135 #define FSACTL_GET_PCI_INFO             _IO('8', 71)
136 #define FSACTL_FORCE_DELETE_DISK        _IO('8', 72)
137 #define FSACTL_AIF_THREAD               _IO('8', 79)
138 #define FSACTL_SEND_LARGE_FIB           _IO('8', 90)
139 #define FSACTL_GET_FEATURES             _IO('8', 91)
140 
141 #define FSACTL_NULL_IO_TEST             _IO('8', 67)
142 #define FSACTL_SIM_IO_TEST              _IO('8', 83)
143 #define FSACTL_DOWNLOAD                 _IO('8', 131)
144 #define FSACTL_GET_VAR                  _IO('8', 147)
145 #define FSACTL_SET_VAR                  _IO('8', 163)
146 #define FSACTL_GET_FIBTIMES             _IO('8', 179)
147 #define FSACTL_ZERO_FIBTIMES            _IO('8', 195)
148 #define FSACTL_DELETE_DISK              _IO('8', 99)
149 #define FSACTL_QUERY_DISK               _IO('9', 115)
150 
151 #define FSACTL_PROBE_CONTAINERS         _IO('9', 83)    /* Just guessing */
152 
153 #ifdef _KERNEL
154 /*
155  * Support for faking the "miniport" version.
156  */
157 struct aac_rev_check {
158         RevComponent            callingComponent;
159         struct FsaRevision      callingRevision;
160 };
161 
162 struct aac_rev_check_resp {
163         int                     possiblyCompatible;
164         struct FsaRevision      adapterSWRevision;
165 };
166 
167 /*
168  * Context passed in by a consumer looking to collect an AIF.
169  */
170 struct get_adapter_fib_ioctl {
171         u_int32_t       AdapterFibContext;
172         int             Wait;
173         caddr_t         AifFib;
174 };
175 
176 struct aac_query_disk {
177         int32_t         ContainerNumber;
178         int32_t         Bus;
179         int32_t         Target;
180         int32_t         Lun;
181         u_int32_t       Valid;
182         u_int32_t       Locked;
183         u_int32_t       Deleted;
184         int32_t         Instance;
185         char            diskDeviceName[10];
186         u_int32_t       UnMapped;
187 };
188 
189 /* Features, asked from the tools to know if the driver
190  * supports drives >2TB
191  */
192 typedef union {
193         struct {
194                 u_int32_t largeLBA  : 1;        /* disk support greater 2TB */
195                 u_int32_t fReserved : 31;
196         } fBits;
197         u_int32_t fValue;
198 } featuresState;
199 
200 struct aac_features {
201         featuresState feat;
202         u_int32_t data[31];
203         u_int32_t reserved[32];
204 } __packed;
205 #endif
206 

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.