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.7 $
10  *
11  * History of changes
12  *
13  */
14 
15 #define MDSK_WRITE_REQ 0x01
16 #define MDSK_READ_REQ  0x02
17 
18 #define INIT_BIO        0x00
19 #define RW_BIO          0x01
20 #define TERM_BIO        0x02
21 
22 #define DEV_CLASS_FBA   0x01
23 #define DEV_CLASS_ECKD  0x04
24 #define DEV_CLASS_CKD   0x04
25 
26 typedef struct diag_bio_t {
27 	u8 type;
28 	u8 status;
29 	u16 spare1;
30 	u32 block_number;
31 	u32 alet;
32 	u32 buffer;
33 } __attribute__ ((packed, aligned (8)))
34 
35     diag_bio_t;
36 
37 typedef struct diag_init_io_t {
38 	u16 dev_nr;
39 	u16 spare1[11];
40 	u32 block_size;
41 	u32 offset;
42 	u32 start_block;
43 	u32 end_block;
44 	u32 spare2[6];
45 } __attribute__ ((packed, aligned (8)))
46 
47     diag_init_io_t;
48 
49 typedef struct diag_rw_io_t {
50 	u16 dev_nr;
51 	u16 spare1[11];
52 	u8 key;
53 	u8 flags;
54 	u16 spare2;
55 	u32 block_count;
56 	u32 alet;
57 	u32 bio_list;
58 	u32 interrupt_params;
59 	u32 spare3[5];
60 } __attribute__ ((packed, aligned (8)))
61 
62     diag_rw_io_t;
63 
64 int dasd_diag_init (void);
65 void dasd_diag_cleanup (void);
66