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