root/drivers/s390/block/dasd_diag.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 
  29 struct 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 
  44 typedef u64 blocknum_t;
  45 typedef s64 sblocknum_t;
  46 
  47 struct 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 
  56 struct 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 
  68 struct 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)));

/* [<][>][^][v][top][bottom][index][help] */