1/* 2 * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> 3 * Based on.......: linux/drivers/s390/block/mdisk.h 4 * ...............: by Hartmunt Penner <hpenner@de.ibm.com> 5 * Bugreports.to..: <Linux390@de.ibm.com> 6 * Copyright IBM Corp. 1999, 2000 7 * 8 */ 9 10#define MDSK_WRITE_REQ 0x01 11#define MDSK_READ_REQ 0x02 12 13#define INIT_BIO 0x00 14#define RW_BIO 0x01 15#define TERM_BIO 0x02 16 17#define DEV_CLASS_FBA 0x01 18#define DEV_CLASS_ECKD 0x04 19 20#define DASD_DIAG_CODE_31BIT 0x03 21#define DASD_DIAG_CODE_64BIT 0x07 22 23#define DASD_DIAG_RWFLAG_ASYNC 0x02 24#define DASD_DIAG_RWFLAG_NOCACHE 0x01 25 26#define DASD_DIAG_FLAGA_FORMAT_64BIT 0x80 27 28struct dasd_diag_characteristics { 29 u16 dev_nr; 30 u16 rdc_len; 31 u8 vdev_class; 32 u8 vdev_type; 33 u8 vdev_status; 34 u8 vdev_flags; 35 u8 rdev_class; 36 u8 rdev_type; 37 u8 rdev_model; 38 u8 rdev_features; 39} __attribute__ ((packed, aligned(4))); 40 41#define DASD_DIAG_FLAGA_DEFAULT DASD_DIAG_FLAGA_FORMAT_64BIT 42 43typedef u64 blocknum_t; 44typedef s64 sblocknum_t; 45 46struct dasd_diag_bio { 47 u8 type; 48 u8 status; 49 u8 spare1[2]; 50 u32 alet; 51 blocknum_t block_number; 52 void *buffer; 53} __attribute__ ((packed, aligned(8))); 54 55struct dasd_diag_init_io { 56 u16 dev_nr; 57 u8 flaga; 58 u8 spare1[21]; 59 u32 block_size; 60 u8 spare2[4]; 61 blocknum_t offset; 62 sblocknum_t start_block; 63 blocknum_t end_block; 64 u8 spare3[8]; 65} __attribute__ ((packed, aligned(8))); 66 67struct dasd_diag_rw_io { 68 u16 dev_nr; 69 u8 flaga; 70 u8 spare1[21]; 71 u8 key; 72 u8 flags; 73 u8 spare2[2]; 74 u32 block_count; 75 u32 alet; 76 u8 spare3[4]; 77 u64 interrupt_params; 78 struct dasd_diag_bio *bio_list; 79 u8 spare4[8]; 80} __attribute__ ((packed, aligned(8))); 81