linux/drivers/s390/block/dasd_fba.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
   4 * Bugreports.to..: <Linux390@de.ibm.com>
   5 * Copyright IBM Corp. 1999, 2000
   6 *
   7 */
   8
   9#ifndef DASD_FBA_H
  10#define DASD_FBA_H
  11
  12/*
  13 * Maximum number of blocks to be chained
  14 */
  15#define DASD_FBA_MAX_BLOCKS             96
  16
  17struct DE_fba_data {
  18        struct {
  19                unsigned char perm:2;   /* Permissions on this extent */
  20                unsigned char zero:2;   /* Must be zero */
  21                unsigned char da:1;     /* usually zero */
  22                unsigned char diag:1;   /* allow diagnose */
  23                unsigned char zero2:2;  /* zero */
  24        } __attribute__ ((packed)) mask;
  25        __u8 zero;              /* Must be zero */
  26        __u16 blk_size;         /* Blocksize */
  27        __u32 ext_loc;          /* Extent locator */
  28        __u32 ext_beg;          /* logical number of block 0 in extent */
  29        __u32 ext_end;          /* logocal number of last block in extent */
  30} __attribute__ ((packed));
  31
  32struct LO_fba_data {
  33        struct {
  34                unsigned char zero:4;
  35                unsigned char cmd:4;
  36        } __attribute__ ((packed)) operation;
  37        __u8 auxiliary;
  38        __u16 blk_ct;
  39        __u32 blk_nr;
  40} __attribute__ ((packed));
  41
  42struct dasd_fba_characteristics {
  43        union {
  44                __u8 c;
  45                struct {
  46                        unsigned char reserved:1;
  47                        unsigned char overrunnable:1;
  48                        unsigned char burst_byte:1;
  49                        unsigned char data_chain:1;
  50                        unsigned char zeros:4;
  51                } __attribute__ ((packed)) bits;
  52        } __attribute__ ((packed)) mode;
  53        union {
  54                __u8 c;
  55                struct {
  56                        unsigned char zero0:1;
  57                        unsigned char removable:1;
  58                        unsigned char shared:1;
  59                        unsigned char zero1:1;
  60                        unsigned char mam:1;
  61                        unsigned char zeros:3;
  62                } __attribute__ ((packed)) bits;
  63        } __attribute__ ((packed)) features;
  64        __u8 dev_class;
  65        __u8 unit_type;
  66        __u16 blk_size;
  67        __u32 blk_per_cycl;
  68        __u32 blk_per_bound;
  69        __u32 blk_bdsa;
  70        __u32 reserved0;
  71        __u16 reserved1;
  72        __u16 blk_ce;
  73        __u32 reserved2;
  74        __u16 reserved3;
  75} __attribute__ ((packed));
  76
  77#endif                          /* DASD_FBA_H */
  78