|  | /* | 
|  | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 
|  | * Based on.......: linux/drivers/s390/block/mdisk.h | 
|  | * ...............: by Hartmunt Penner <hpenner@de.ibm.com> | 
|  | * Bugreports.to..: <Linux390@de.ibm.com> | 
|  | * Copyright IBM Corp. 1999, 2000 | 
|  | * | 
|  | */ | 
|  |  | 
|  | #define MDSK_WRITE_REQ 0x01 | 
|  | #define MDSK_READ_REQ  0x02 | 
|  |  | 
|  | #define INIT_BIO	0x00 | 
|  | #define RW_BIO		0x01 | 
|  | #define TERM_BIO	0x02 | 
|  |  | 
|  | #define DEV_CLASS_FBA	0x01 | 
|  | #define DEV_CLASS_ECKD	0x04 | 
|  |  | 
|  | #define DASD_DIAG_CODE_31BIT		0x03 | 
|  | #define DASD_DIAG_CODE_64BIT		0x07 | 
|  |  | 
|  | #define DASD_DIAG_RWFLAG_ASYNC		0x02 | 
|  | #define DASD_DIAG_RWFLAG_NOCACHE	0x01 | 
|  |  | 
|  | #define DASD_DIAG_FLAGA_FORMAT_64BIT	0x80 | 
|  |  | 
|  | struct dasd_diag_characteristics { | 
|  | u16 dev_nr; | 
|  | u16 rdc_len; | 
|  | u8 vdev_class; | 
|  | u8 vdev_type; | 
|  | u8 vdev_status; | 
|  | u8 vdev_flags; | 
|  | u8 rdev_class; | 
|  | u8 rdev_type; | 
|  | u8 rdev_model; | 
|  | u8 rdev_features; | 
|  | } __attribute__ ((packed, aligned(4))); | 
|  |  | 
|  | #define DASD_DIAG_FLAGA_DEFAULT		DASD_DIAG_FLAGA_FORMAT_64BIT | 
|  |  | 
|  | typedef u64 blocknum_t; | 
|  | typedef s64 sblocknum_t; | 
|  |  | 
|  | struct dasd_diag_bio { | 
|  | u8 type; | 
|  | u8 status; | 
|  | u8 spare1[2]; | 
|  | u32 alet; | 
|  | blocknum_t block_number; | 
|  | void *buffer; | 
|  | } __attribute__ ((packed, aligned(8))); | 
|  |  | 
|  | struct dasd_diag_init_io { | 
|  | u16 dev_nr; | 
|  | u8 flaga; | 
|  | u8 spare1[21]; | 
|  | u32 block_size; | 
|  | u8 spare2[4]; | 
|  | blocknum_t offset; | 
|  | sblocknum_t start_block; | 
|  | blocknum_t end_block; | 
|  | u8  spare3[8]; | 
|  | } __attribute__ ((packed, aligned(8))); | 
|  |  | 
|  | struct dasd_diag_rw_io { | 
|  | u16 dev_nr; | 
|  | u8  flaga; | 
|  | u8  spare1[21]; | 
|  | u8  key; | 
|  | u8  flags; | 
|  | u8  spare2[2]; | 
|  | u32 block_count; | 
|  | u32 alet; | 
|  | u8  spare3[4]; | 
|  | u64 interrupt_params; | 
|  | struct dasd_diag_bio *bio_list; | 
|  | u8  spare4[8]; | 
|  | } __attribute__ ((packed, aligned(8))); |