Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/block/ida_ioctl.h
15109 views
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;
39
__u32 board_id;
40
} ida_pci_info_struct;
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 {
52
__u8 cmd;
53
__u8 rcode;
54
__u8 unit;
55
__u32 blk;
56
__u16 blk_cnt;
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 {
66
drv_info_t drv;
67
unsigned char buf[1024];
68
69
id_ctlr_t id_ctlr;
70
drv_param_t drv_param;
71
id_log_drv_t id_log_drv;
72
id_log_drv_ext_t id_log_drv_ext;
73
sense_log_drv_stat_t sense_log_drv_stat;
74
id_phys_drv_t id_phys_drv;
75
blink_drv_leds_t blink_drv_leds;
76
sense_blink_leds_t sense_blink_leds;
77
config_t config;
78
reorder_log_drv_t reorder_log_drv;
79
label_log_drv_t label_log_drv;
80
surf_delay_t surf_delay;
81
overhead_delay_t overhead_delay;
82
mp_delay_t mp_delay;
83
scsi_param_t scsi_param;
84
} c;
85
} ida_ioctl_t;
86
87
#endif /* IDA_IOCTL_H */
88
89