WIP FPC-III support
[linux/fpc-iii.git] / drivers / s390 / block / dasd_fba.h
blob45ddabec40176921e65b58ee3033d5ba9cf23093
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
7 */
9 #ifndef DASD_FBA_H
10 #define DASD_FBA_H
13 * Maximum number of blocks to be chained
15 #define DASD_FBA_MAX_BLOCKS 96
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));
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));
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));
77 #endif /* DASD_FBA_H */