diff options
Diffstat (limited to 'drivers/s390/block/dasd_eckd.h')
-rw-r--r-- | drivers/s390/block/dasd_eckd.h | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/drivers/s390/block/dasd_eckd.h b/drivers/s390/block/dasd_eckd.h index eecfa776db15..ad45bcac3ce4 100644 --- a/drivers/s390/block/dasd_eckd.h +++ b/drivers/s390/block/dasd_eckd.h | |||
@@ -38,8 +38,11 @@ | |||
38 | #define DASD_ECKD_CCW_RELEASE 0x94 | 38 | #define DASD_ECKD_CCW_RELEASE 0x94 |
39 | #define DASD_ECKD_CCW_READ_CKD_MT 0x9e | 39 | #define DASD_ECKD_CCW_READ_CKD_MT 0x9e |
40 | #define DASD_ECKD_CCW_WRITE_CKD_MT 0x9d | 40 | #define DASD_ECKD_CCW_WRITE_CKD_MT 0x9d |
41 | #define DASD_ECKD_CCW_WRITE_TRACK_DATA 0xA5 | ||
42 | #define DASD_ECKD_CCW_READ_TRACK_DATA 0xA6 | ||
41 | #define DASD_ECKD_CCW_RESERVE 0xB4 | 43 | #define DASD_ECKD_CCW_RESERVE 0xB4 |
42 | #define DASD_ECKD_CCW_PFX 0xE7 | 44 | #define DASD_ECKD_CCW_PFX 0xE7 |
45 | #define DASD_ECKD_CCW_PFX_READ 0xEA | ||
43 | #define DASD_ECKD_CCW_RSCK 0xF9 | 46 | #define DASD_ECKD_CCW_RSCK 0xF9 |
44 | 47 | ||
45 | /* | 48 | /* |
@@ -123,7 +126,9 @@ struct DE_eckd_data { | |||
123 | unsigned long long ep_sys_time; /* Ext Parameter - System Time Stamp */ | 126 | unsigned long long ep_sys_time; /* Ext Parameter - System Time Stamp */ |
124 | __u8 ep_format; /* Extended Parameter format byte */ | 127 | __u8 ep_format; /* Extended Parameter format byte */ |
125 | __u8 ep_prio; /* Extended Parameter priority I/O byte */ | 128 | __u8 ep_prio; /* Extended Parameter priority I/O byte */ |
126 | __u8 ep_reserved[6]; /* Extended Parameter Reserved */ | 129 | __u8 ep_reserved1; /* Extended Parameter Reserved */ |
130 | __u8 ep_rec_per_track; /* Number of records on a track */ | ||
131 | __u8 ep_reserved[4]; /* Extended Parameter Reserved */ | ||
127 | } __attribute__ ((packed)); | 132 | } __attribute__ ((packed)); |
128 | 133 | ||
129 | struct LO_eckd_data { | 134 | struct LO_eckd_data { |
@@ -144,11 +149,37 @@ struct LO_eckd_data { | |||
144 | __u16 length; | 149 | __u16 length; |
145 | } __attribute__ ((packed)); | 150 | } __attribute__ ((packed)); |
146 | 151 | ||
152 | struct LRE_eckd_data { | ||
153 | struct { | ||
154 | unsigned char orientation:2; | ||
155 | unsigned char operation:6; | ||
156 | } __attribute__ ((packed)) operation; | ||
157 | struct { | ||
158 | unsigned char length_valid:1; | ||
159 | unsigned char length_scope:1; | ||
160 | unsigned char imbedded_ccw_valid:1; | ||
161 | unsigned char check_bytes:2; | ||
162 | unsigned char imbedded_count_valid:1; | ||
163 | unsigned char reserved:1; | ||
164 | unsigned char read_count_suffix:1; | ||
165 | } __attribute__ ((packed)) auxiliary; | ||
166 | __u8 imbedded_ccw; | ||
167 | __u8 count; | ||
168 | struct ch_t seek_addr; | ||
169 | struct chr_t search_arg; | ||
170 | __u8 sector; | ||
171 | __u16 length; | ||
172 | __u8 imbedded_count; | ||
173 | __u8 extended_operation; | ||
174 | __u16 extended_parameter_length; | ||
175 | __u8 extended_parameter[0]; | ||
176 | } __attribute__ ((packed)); | ||
177 | |||
147 | /* Prefix data for format 0x00 and 0x01 */ | 178 | /* Prefix data for format 0x00 and 0x01 */ |
148 | struct PFX_eckd_data { | 179 | struct PFX_eckd_data { |
149 | unsigned char format; | 180 | unsigned char format; |
150 | struct { | 181 | struct { |
151 | unsigned char define_extend:1; | 182 | unsigned char define_extent:1; |
152 | unsigned char time_stamp:1; | 183 | unsigned char time_stamp:1; |
153 | unsigned char verify_base:1; | 184 | unsigned char verify_base:1; |
154 | unsigned char hyper_pav:1; | 185 | unsigned char hyper_pav:1; |
@@ -158,9 +189,8 @@ struct PFX_eckd_data { | |||
158 | __u8 aux; | 189 | __u8 aux; |
159 | __u8 base_lss; | 190 | __u8 base_lss; |
160 | __u8 reserved[7]; | 191 | __u8 reserved[7]; |
161 | struct DE_eckd_data define_extend; | 192 | struct DE_eckd_data define_extent; |
162 | struct LO_eckd_data locate_record; | 193 | struct LRE_eckd_data locate_record; |
163 | __u8 LO_extended_data[4]; | ||
164 | } __attribute__ ((packed)); | 194 | } __attribute__ ((packed)); |
165 | 195 | ||
166 | struct dasd_eckd_characteristics { | 196 | struct dasd_eckd_characteristics { |