Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / drivers / s390 / block / dasd_fba.h
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  * Coypright 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
17 struct 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
32 struct 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
42 struct 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 */