]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blame - drivers/s390/block/dasd_diag.h
[PATCH] s390: test_bit return value
[mirror_ubuntu-zesty-kernel.git] / drivers / s390 / block / dasd_diag.h
CommitLineData
1da177e4
LT
1/*
2 * File...........: linux/drivers/s390/block/dasd_diag.h
3 * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
4 * Based on.......: linux/drivers/s390/block/mdisk.h
5 * ...............: by Hartmunt Penner <hpenner@de.ibm.com>
6 * Bugreports.to..: <Linux390@de.ibm.com>
7 * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000
8 *
fd49f41a 9 * $Revision: 1.7 $
1da177e4
LT
10 */
11
12#define MDSK_WRITE_REQ 0x01
13#define MDSK_READ_REQ 0x02
14
15#define INIT_BIO 0x00
16#define RW_BIO 0x01
17#define TERM_BIO 0x02
18
19#define DEV_CLASS_FBA 0x01
20#define DEV_CLASS_ECKD 0x04
21
fd49f41a
HH
22#define DASD_DIAG_LC_INT_CODE 132
23#define DASD_DIAG_LC_INT_STATUS 133
24#define DASD_DIAG_LC_INT_PARM_31BIT 128
25#define DASD_DIAG_LC_INT_PARM_64BIT 4536
26#define DASD_DIAG_CODE_31BIT 0x03
27#define DASD_DIAG_CODE_64BIT 0x07
28
29#define DASD_DIAG_RWFLAG_ASYNC 0x02
30#define DASD_DIAG_RWFLAG_NOCACHE 0x01
31
32#define DASD_DIAG_FLAGA_FORMAT_64BIT 0x80
33
1da177e4
LT
34struct dasd_diag_characteristics {
35 u16 dev_nr;
36 u16 rdc_len;
37 u8 vdev_class;
38 u8 vdev_type;
39 u8 vdev_status;
40 u8 vdev_flags;
41 u8 rdev_class;
42 u8 rdev_type;
43 u8 rdev_model;
44 u8 rdev_features;
45} __attribute__ ((packed, aligned(4)));
46
fd49f41a
HH
47struct dasd_diag_cms_label {
48 u8 label_id[4];
49 u8 vol_id[6];
50 u16 version_id;
51 u32 block_size;
52 u32 origin_ptr;
53 u32 usable_count;
54 u32 formatted_count;
55 u32 block_count;
56 u32 used_count;
57 u32 fst_size;
58 u32 fst_count;
59 u8 format_date[6];
60 u8 reserved1[2];
61 u32 disk_offset;
62 u32 map_block;
63 u32 hblk_disp;
64 u32 user_disp;
65 u8 reserved2[4];
66 u8 segment_name[8];
67} __attribute__ ((packed));
68
69#ifdef CONFIG_ARCH_S390X
70#define DASD_DIAG_FLAGA_DEFAULT DASD_DIAG_FLAGA_FORMAT_64BIT
71
72typedef u64 blocknum_t;
73typedef s64 sblocknum_t;
74
75struct dasd_diag_bio {
76 u8 type;
77 u8 status;
78 u8 spare1[2];
79 u32 alet;
80 blocknum_t block_number;
81 u64 buffer;
82} __attribute__ ((packed, aligned(8)));
83
84struct dasd_diag_init_io {
85 u16 dev_nr;
86 u8 flaga;
87 u8 spare1[21];
88 u32 block_size;
89 u8 spare2[4];
90 blocknum_t offset;
91 sblocknum_t start_block;
92 blocknum_t end_block;
93 u8 spare3[8];
94} __attribute__ ((packed, aligned(8)));
95
96struct dasd_diag_rw_io {
97 u16 dev_nr;
98 u8 flaga;
99 u8 spare1[21];
100 u8 key;
101 u8 flags;
102 u8 spare2[2];
103 u32 block_count;
104 u32 alet;
105 u8 spare3[4];
106 u64 interrupt_params;
107 u64 bio_list;
108 u8 spare4[8];
109} __attribute__ ((packed, aligned(8)));
110#else /* CONFIG_ARCH_S390X */
111#define DASD_DIAG_FLAGA_DEFAULT 0x0
112
113typedef u32 blocknum_t;
114typedef s32 sblocknum_t;
115
1da177e4
LT
116struct dasd_diag_bio {
117 u8 type;
118 u8 status;
119 u16 spare1;
fd49f41a 120 blocknum_t block_number;
1da177e4
LT
121 u32 alet;
122 u32 buffer;
123} __attribute__ ((packed, aligned(8)));
124
125struct dasd_diag_init_io {
126 u16 dev_nr;
fd49f41a
HH
127 u8 flaga;
128 u8 spare1[21];
1da177e4 129 u32 block_size;
fd49f41a
HH
130 blocknum_t offset;
131 sblocknum_t start_block;
132 blocknum_t end_block;
133 u8 spare2[24];
1da177e4
LT
134} __attribute__ ((packed, aligned(8)));
135
136struct dasd_diag_rw_io {
137 u16 dev_nr;
fd49f41a
HH
138 u8 flaga;
139 u8 spare1[21];
1da177e4
LT
140 u8 key;
141 u8 flags;
fd49f41a 142 u8 spare2[2];
1da177e4
LT
143 u32 block_count;
144 u32 alet;
145 u32 bio_list;
146 u32 interrupt_params;
fd49f41a 147 u8 spare3[20];
1da177e4 148} __attribute__ ((packed, aligned(8)));
fd49f41a 149#endif /* CONFIG_ARCH_S390X */