Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ida_ioctl.h
Go to the documentation of this file.
1 /*
2  * Disk Array driver for Compaq SMART2 Controllers
3  * Copyright 1998 Compaq Computer Corporation
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
13  * NON INFRINGEMENT. See the GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  *
19  * Questions/Comments/Bugfixes to [email protected]
20  *
21  */
22 #ifndef IDA_IOCTL_H
23 #define IDA_IOCTL_H
24 
25 #include "ida_cmd.h"
26 #include "cpqarray.h"
27 
28 #define IDAGETDRVINFO 0x27272828
29 #define IDAPASSTHRU 0x28282929
30 #define IDAGETCTLRSIG 0x29293030
31 #define IDAREVALIDATEVOLS 0x30303131
32 #define IDADRIVERVERSION 0x31313232
33 #define IDAGETPCIINFO 0x32323333
34 
35 typedef struct _ida_pci_info_struct
36 {
37  unsigned char bus;
38  unsigned char dev_fn;
41 /*
42  * Normally, the ioctl determines the logical unit for this command by
43  * the major,minor number of the fd passed to ioctl. If you need to send
44  * a command to a different/nonexistant unit (such as during config), you
45  * can override the normal behavior by setting the unit valid bit. (Normally,
46  * it should be zero) The controller the command is sent to is still
47  * determined by the major number of the open device.
48  */
49 
50 #define UNITVALID 0x80
51 typedef struct {
57 
58 /* currently, sg_cnt is assumed to be 1: only the 0th element of sg is used */
59  struct {
60  void __user *addr;
61  size_t size;
62  } sg[SG_MAX];
63  int sg_cnt;
64 
65  union ctlr_cmds {
67  unsigned char buf[1024];
68 
84  } c;
85 } ida_ioctl_t;
86 
87 #endif /* IDA_IOCTL_H */