2 * File...........: linux/drivers/s390/block/dasd_diag.h
4 * Based on.......: linux/drivers/s390/block/mdisk.h
7 * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000
12 #define MDSK_WRITE_REQ 0x01
13 #define MDSK_READ_REQ 0x02
19 #define DEV_CLASS_FBA 0x01
20 #define DEV_CLASS_ECKD 0x04
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
29 #define DASD_DIAG_RWFLAG_ASYNC 0x02
30 #define DASD_DIAG_RWFLAG_NOCACHE 0x01
32 #define DASD_DIAG_FLAGA_FORMAT_64BIT 0x80
34 struct dasd_diag_characteristics {
45 } __attribute__ ((packed, aligned(4)));
49 #define DASD_DIAG_FLAGA_DEFAULT DASD_DIAG_FLAGA_FORMAT_64BIT
51 typedef u64 blocknum_t;
52 typedef s64 sblocknum_t;
54 struct dasd_diag_bio {
59 blocknum_t block_number;
61 } __attribute__ ((packed, aligned(8)));
63 struct dasd_diag_init_io {
70 sblocknum_t start_block;
73 } __attribute__ ((packed, aligned(8)));
75 struct dasd_diag_rw_io {
86 struct dasd_diag_bio *bio_list;
88 } __attribute__ ((packed, aligned(8)));
89 #else /* CONFIG_64BIT */
90 #define DASD_DIAG_FLAGA_DEFAULT 0x0
92 typedef u32 blocknum_t;
93 typedef s32 sblocknum_t;
95 struct dasd_diag_bio {
99 blocknum_t block_number;
102 } __attribute__ ((packed, aligned(8)));
104 struct dasd_diag_init_io {
110 sblocknum_t start_block;
111 blocknum_t end_block;
113 } __attribute__ ((packed, aligned(8)));
115 struct dasd_diag_rw_io {
124 struct dasd_diag_bio *bio_list;
125 u32 interrupt_params;
127 } __attribute__ ((packed, aligned(8)));
128 #endif /* CONFIG_64BIT */