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 arrays@compaq.com
20 *
21 * If you want to make changes, improve or add functionality to this
22 * driver, you'll probably need the Compaq Array Controller Interface
23 * Specificiation (Document number ECG086/1198)
24 */
25 #ifndef IDA_IOCTL_H
26 #define IDA_IOCTL_H
27
28 #include "ida_cmd.h"
29 #include "cpqarray.h"
30
31 #define IDAGETDRVINFO 0x27272828
32 #define IDAPASSTHRU 0x28282929
33 #define IDAGETCTLRSIG 0x29293030
34 #define IDAREVALIDATEVOLS 0x30303131
35 #define IDADRIVERVERSION 0x31313232
36 #define IDAGETPCIINFO 0x32323333
37
38 typedef struct _ida_pci_info_struct
39 {
40 unsigned char bus;
41 unsigned char dev_fn;
42 __u32 board_id;
43 } ida_pci_info_struct;
44 /*
45 * Normally, the ioctl determines the logical unit for this command by
46 * the major,minor number of the fd passed to ioctl. If you need to send
47 * a command to a different/nonexistant unit (such as during config), you
48 * can override the normal behavior by setting the unit valid bit. (Normally,
49 * it should be zero) The controller the command is sent to is still
50 * determined by the major number of the open device.
51 */
52
53 #define UNITVALID 0x80
54 typedef struct {
55 __u8 cmd;
56 __u8 rcode;
57 __u8 unit;
58 __u32 blk;
59 __u16 blk_cnt;
60
61 /* currently, sg_cnt is assumed to be 1: only the 0th element of sg is used */
62 struct {
63 void *addr;
64 size_t size;
65 } sg[SG_MAX];
66 int sg_cnt;
67
68 union ctlr_cmds {
69 drv_info_t drv;
70 unsigned char buf[1024];
71
72 id_ctlr_t id_ctlr;
73 drv_param_t drv_param;
74 id_log_drv_t id_log_drv;
75 id_log_drv_ext_t id_log_drv_ext;
76 sense_log_drv_stat_t sense_log_drv_stat;
77 id_phys_drv_t id_phys_drv;
78 blink_drv_leds_t blink_drv_leds;
79 sense_blink_leds_t sense_blink_leds;
80 config_t config;
81 reorder_log_drv_t reorder_log_drv;
82 label_log_drv_t label_log_drv;
83 surf_delay_t surf_delay;
84 overhead_delay_t overhead_delay;
85 mp_delay_t mp_delay;
86 scsi_param_t scsi_param;
87 } c;
88 } ida_ioctl_t;
89
90 #endif /* IDA_IOCTL_H */
91
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.