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
;
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
{
146 u32 interrupt_params
;
148 } __attribute__ ((packed
, aligned(8)));
149 #endif /* CONFIG_ARCH_S390X */