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
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)));
47 struct dasd_diag_cms_label {
67 } __attribute__ ((packed));
69 #ifdef CONFIG_ARCH_S390X
70 #define DASD_DIAG_FLAGA_DEFAULT DASD_DIAG_FLAGA_FORMAT_64BIT
72 typedef u64 blocknum_t;
73 typedef s64 sblocknum_t;
75 struct dasd_diag_bio {
80 blocknum_t block_number;
82 } __attribute__ ((packed, aligned(8)));
84 struct dasd_diag_init_io {
91 sblocknum_t start_block;
94 } __attribute__ ((packed, aligned(8)));
96 struct dasd_diag_rw_io {
106 u64 interrupt_params;
107 struct dasd_diag_bio *bio_list;
109 } __attribute__ ((packed, aligned(8)));
110 #else /* CONFIG_ARCH_S390X */
111 #define DASD_DIAG_FLAGA_DEFAULT 0x0
113 typedef u32 blocknum_t;
114 typedef s32 sblocknum_t;
116 struct dasd_diag_bio {
120 blocknum_t block_number;
123 } __attribute__ ((packed, aligned(8)));
125 struct dasd_diag_init_io {
131 sblocknum_t start_block;
132 blocknum_t end_block;
134 } __attribute__ ((packed, aligned(8)));
136 struct dasd_diag_rw_io {
145 struct dasd_diag_bio *bio_list;
146 u32 interrupt_params;
148 } __attribute__ ((packed, aligned(8)));
149 #endif /* CONFIG_ARCH_S390X */