1 /*
2  * File...........: linux/drivers/s390/block/dasd_fba.h
3  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
4  *                  Horst Hummel <Horst.Hummel@de.ibm.com>
5  * Bugreports.to..: <Linux390@de.ibm.com>
6  * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000
7  *
8  * $Revision: 1.6 $
9  *
10  * History of changes
11  *
12  */
13 
14 #ifndef DASD_FBA_H
15 #define DASD_FBA_H
16 
17 typedef
18     struct DE_fba_data_t {
19 	struct {
20 		unsigned char perm:2;	/* Permissions on this extent */
21 		unsigned char zero:2;	/* Must be zero */
22 		unsigned char da:1;	/* usually zero */
23 		unsigned char diag:1;	/* allow diagnose */
24 		unsigned char zero2:2;	/* zero */
25 	} __attribute__ ((packed)) mask;
26 	__u8 zero;		/* Must be zero */
27 	__u16 blk_size;		/* Blocksize */
28 	__u32 ext_loc;		/* Extent locator */
29 	__u32 ext_beg;		/* logical number of block 0 in extent */
30 	__u32 ext_end;		/* logocal number of last block in extent */
31 } __attribute__ ((packed))
32 
33     DE_fba_data_t;
34 
35 typedef
36     struct LO_fba_data_t {
37 	struct {
38 		unsigned char zero:4;
39 		unsigned char cmd:4;
40 	} __attribute__ ((packed)) operation;
41 	__u8 auxiliary;
42 	__u16 blk_ct;
43 	__u32 blk_nr;
44 } __attribute__ ((packed))
45 
46     LO_fba_data_t;
47 
48 typedef
49     struct dasd_fba_characteristics_t {
50 	union {
51 		__u8 c;
52 		struct {
53 			unsigned char reserved:1;
54 			unsigned char overrunnable:1;
55 			unsigned char burst_byte:1;
56 			unsigned char data_chain:1;
57 			unsigned char zeros:4;
58 		} __attribute__ ((packed)) bits;
59 	} __attribute__ ((packed)) mode;
60 	union {
61 		__u8 c;
62 		struct {
63 			unsigned char zero0:1;
64 			unsigned char removable:1;
65 			unsigned char shared:1;
66 			unsigned char zero1:1;
67 			unsigned char mam:1;
68 			unsigned char zeros:3;
69 		} __attribute__ ((packed)) bits;
70 	} __attribute__ ((packed)) features;
71 	__u8 dev_class;
72 	__u8 unit_type;
73 	__u16 blk_size;
74 	__u32 blk_per_cycl;
75 	__u32 blk_per_bound;
76 	__u32 blk_bdsa;
77 	__u32 reserved0;
78 	__u16 reserved1;
79 	__u16 blk_ce;
80 	__u32 reserved2;
81 	__u16 reserved3;
82 } __attribute__ ((packed))
83 
84     dasd_fba_characteristics_t;
85 
86 int dasd_fba_init (void);
87 void dasd_fba_cleanup (void);
88 #endif				/* DASD_FBA_H */
89