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