cpp-d1064d
[cross.git] / i686-linux-gnu-4.7 / usr / include / linux / cciss_ioctl.h
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef CCISS_IOCTLH
3 #define CCISS_IOCTLH
4
5 #include <linux/types.h>
6 #include <linux/ioctl.h>
7 #include <linux/cciss_defs.h>
8
9 #define CCISS_IOC_MAGIC 'B'
10
11
12 typedef struct _cciss_pci_info_struct
13 {
14         unsigned char   bus;
15         unsigned char   dev_fn;
16         unsigned short  domain;
17         __u32           board_id;
18 } cciss_pci_info_struct; 
19
20 typedef struct _cciss_coalint_struct
21 {
22         __u32  delay;
23         __u32  count;
24 } cciss_coalint_struct;
25
26 typedef char NodeName_type[16];
27
28 typedef __u32 Heartbeat_type;
29
30 #define CISS_PARSCSIU2  0x0001
31 #define CISS_PARCSCIU3  0x0002
32 #define CISS_FIBRE1G    0x0100
33 #define CISS_FIBRE2G    0x0200
34 typedef __u32 BusTypes_type;
35
36 typedef char FirmwareVer_type[4];
37 typedef __u32 DriverVer_type;
38
39 #define MAX_KMALLOC_SIZE 128000
40
41 typedef struct _IOCTL_Command_struct {
42   LUNAddr_struct           LUN_info;
43   RequestBlock_struct      Request;
44   ErrorInfo_struct         error_info; 
45   WORD                     buf_size;  /* size in bytes of the buf */
46   BYTE                     *buf;
47 } IOCTL_Command_struct;
48
49 typedef struct _BIG_IOCTL_Command_struct {
50   LUNAddr_struct           LUN_info;
51   RequestBlock_struct      Request;
52   ErrorInfo_struct         error_info;
53   DWORD                    malloc_size; /* < MAX_KMALLOC_SIZE in cciss.c */
54   DWORD                    buf_size;    /* size in bytes of the buf */
55                                         /* < malloc_size * MAXSGENTRIES */
56   BYTE                     *buf;
57 } BIG_IOCTL_Command_struct;
58
59 typedef struct _LogvolInfo_struct{
60         __u32   LunID;
61         int     num_opens;  /* number of opens on the logical volume */
62         int     num_parts;  /* number of partitions configured on logvol */
63 } LogvolInfo_struct;
64
65 #define CCISS_GETPCIINFO _IOR(CCISS_IOC_MAGIC, 1, cciss_pci_info_struct)
66
67 #define CCISS_GETINTINFO _IOR(CCISS_IOC_MAGIC, 2, cciss_coalint_struct)
68 #define CCISS_SETINTINFO _IOW(CCISS_IOC_MAGIC, 3, cciss_coalint_struct)
69
70 #define CCISS_GETNODENAME _IOR(CCISS_IOC_MAGIC, 4, NodeName_type)
71 #define CCISS_SETNODENAME _IOW(CCISS_IOC_MAGIC, 5, NodeName_type)
72
73 #define CCISS_GETHEARTBEAT _IOR(CCISS_IOC_MAGIC, 6, Heartbeat_type)
74 #define CCISS_GETBUSTYPES  _IOR(CCISS_IOC_MAGIC, 7, BusTypes_type)
75 #define CCISS_GETFIRMVER   _IOR(CCISS_IOC_MAGIC, 8, FirmwareVer_type)
76 #define CCISS_GETDRIVVER   _IOR(CCISS_IOC_MAGIC, 9, DriverVer_type)
77 #define CCISS_REVALIDVOLS  _IO(CCISS_IOC_MAGIC, 10)
78 #define CCISS_PASSTHRU     _IOWR(CCISS_IOC_MAGIC, 11, IOCTL_Command_struct)
79 #define CCISS_DEREGDISK    _IO(CCISS_IOC_MAGIC, 12)
80
81 /* no longer used... use REGNEWD instead */ 
82 #define CCISS_REGNEWDISK  _IOW(CCISS_IOC_MAGIC, 13, int)
83
84 #define CCISS_REGNEWD      _IO(CCISS_IOC_MAGIC, 14)
85 #define CCISS_RESCANDISK   _IO(CCISS_IOC_MAGIC, 16)
86 #define CCISS_GETLUNINFO   _IOR(CCISS_IOC_MAGIC, 17, LogvolInfo_struct)
87 #define CCISS_BIG_PASSTHRU _IOWR(CCISS_IOC_MAGIC, 18, BIG_IOCTL_Command_struct)
88
89 #endif /* CCISS_IOCTLH */