]> bbs.cooldavid.org Git - net-next-2.6.git/blob - drivers/s390/block/dasd_diag.h
[PATCH] s390: cleanup Kconfig
[net-next-2.6.git] / drivers / s390 / block / dasd_diag.h
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  *
9  * $Revision: 1.9 $
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
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
34 struct 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
47
48 #ifdef CONFIG_64BIT
49 #define DASD_DIAG_FLAGA_DEFAULT         DASD_DIAG_FLAGA_FORMAT_64BIT
50
51 typedef u64 blocknum_t;
52 typedef s64 sblocknum_t;
53
54 struct dasd_diag_bio {
55         u8 type;
56         u8 status;
57         u8 spare1[2];
58         u32 alet;
59         blocknum_t block_number;
60         void *buffer;
61 } __attribute__ ((packed, aligned(8)));
62
63 struct dasd_diag_init_io {
64         u16 dev_nr;
65         u8 flaga;
66         u8 spare1[21];
67         u32 block_size;
68         u8 spare2[4];
69         blocknum_t offset;
70         sblocknum_t start_block;
71         blocknum_t end_block;
72         u8  spare3[8];
73 } __attribute__ ((packed, aligned(8)));
74
75 struct dasd_diag_rw_io {
76         u16 dev_nr;
77         u8  flaga;
78         u8  spare1[21];
79         u8  key;
80         u8  flags;
81         u8  spare2[2];
82         u32 block_count;
83         u32 alet;
84         u8  spare3[4];
85         u64 interrupt_params;
86         struct dasd_diag_bio *bio_list;
87         u8  spare4[8];
88 } __attribute__ ((packed, aligned(8)));
89 #else /* CONFIG_64BIT */
90 #define DASD_DIAG_FLAGA_DEFAULT         0x0
91
92 typedef u32 blocknum_t;
93 typedef s32 sblocknum_t;
94
95 struct dasd_diag_bio {
96         u8 type;
97         u8 status;
98         u16 spare1;
99         blocknum_t block_number;
100         u32 alet;
101         void *buffer;
102 } __attribute__ ((packed, aligned(8)));
103
104 struct dasd_diag_init_io {
105         u16 dev_nr;
106         u8 flaga;
107         u8 spare1[21];
108         u32 block_size;
109         blocknum_t offset;
110         sblocknum_t start_block;
111         blocknum_t end_block;
112         u8 spare2[24];
113 } __attribute__ ((packed, aligned(8)));
114
115 struct dasd_diag_rw_io {
116         u16 dev_nr;
117         u8 flaga;
118         u8 spare1[21];
119         u8 key;
120         u8 flags;
121         u8 spare2[2];
122         u32 block_count;
123         u32 alet;
124         struct dasd_diag_bio *bio_list;
125         u32 interrupt_params;
126         u8 spare3[20];
127 } __attribute__ ((packed, aligned(8)));
128 #endif /* CONFIG_64BIT */