linux/drivers/s390/block/dasd_diag.h
<<
>>
Prefs
   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)));
  82