diff options
Diffstat (limited to 'drivers/s390/block/dasd_int.h')
-rw-r--r-- | drivers/s390/block/dasd_int.h | 49 |
1 files changed, 29 insertions, 20 deletions
diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h index a91d4a97d4f2..32fac186ba3f 100644 --- a/drivers/s390/block/dasd_int.h +++ b/drivers/s390/block/dasd_int.h | |||
@@ -81,6 +81,10 @@ struct dasd_block; | |||
81 | #define DASD_SIM_MSG_TO_OP 0x03 | 81 | #define DASD_SIM_MSG_TO_OP 0x03 |
82 | #define DASD_SIM_LOG 0x0C | 82 | #define DASD_SIM_LOG 0x0C |
83 | 83 | ||
84 | /* lock class for nested cdev lock */ | ||
85 | #define CDEV_NESTED_FIRST 1 | ||
86 | #define CDEV_NESTED_SECOND 2 | ||
87 | |||
84 | /* | 88 | /* |
85 | * SECTION: MACROs for klogd and s390 debug feature (dbf) | 89 | * SECTION: MACROs for klogd and s390 debug feature (dbf) |
86 | */ | 90 | */ |
@@ -229,6 +233,24 @@ struct dasd_ccw_req { | |||
229 | typedef struct dasd_ccw_req *(*dasd_erp_fn_t) (struct dasd_ccw_req *); | 233 | typedef struct dasd_ccw_req *(*dasd_erp_fn_t) (struct dasd_ccw_req *); |
230 | 234 | ||
231 | /* | 235 | /* |
236 | * Unique identifier for dasd device. | ||
237 | */ | ||
238 | #define UA_NOT_CONFIGURED 0x00 | ||
239 | #define UA_BASE_DEVICE 0x01 | ||
240 | #define UA_BASE_PAV_ALIAS 0x02 | ||
241 | #define UA_HYPER_PAV_ALIAS 0x03 | ||
242 | |||
243 | struct dasd_uid { | ||
244 | __u8 type; | ||
245 | char vendor[4]; | ||
246 | char serial[15]; | ||
247 | __u16 ssid; | ||
248 | __u8 real_unit_addr; | ||
249 | __u8 base_unit_addr; | ||
250 | char vduit[33]; | ||
251 | }; | ||
252 | |||
253 | /* | ||
232 | * the struct dasd_discipline is | 254 | * the struct dasd_discipline is |
233 | * sth like a table of virtual functions, if you think of dasd_eckd | 255 | * sth like a table of virtual functions, if you think of dasd_eckd |
234 | * inheriting dasd... | 256 | * inheriting dasd... |
@@ -312,28 +334,15 @@ struct dasd_discipline { | |||
312 | /* suspend/resume functions */ | 334 | /* suspend/resume functions */ |
313 | int (*freeze) (struct dasd_device *); | 335 | int (*freeze) (struct dasd_device *); |
314 | int (*restore) (struct dasd_device *); | 336 | int (*restore) (struct dasd_device *); |
315 | }; | ||
316 | 337 | ||
317 | extern struct dasd_discipline *dasd_diag_discipline_pointer; | 338 | /* reload device after state change */ |
318 | 339 | int (*reload) (struct dasd_device *); | |
319 | /* | ||
320 | * Unique identifier for dasd device. | ||
321 | */ | ||
322 | #define UA_NOT_CONFIGURED 0x00 | ||
323 | #define UA_BASE_DEVICE 0x01 | ||
324 | #define UA_BASE_PAV_ALIAS 0x02 | ||
325 | #define UA_HYPER_PAV_ALIAS 0x03 | ||
326 | 340 | ||
327 | struct dasd_uid { | 341 | int (*get_uid) (struct dasd_device *, struct dasd_uid *); |
328 | __u8 type; | ||
329 | char vendor[4]; | ||
330 | char serial[15]; | ||
331 | __u16 ssid; | ||
332 | __u8 real_unit_addr; | ||
333 | __u8 base_unit_addr; | ||
334 | char vduit[33]; | ||
335 | }; | 342 | }; |
336 | 343 | ||
344 | extern struct dasd_discipline *dasd_diag_discipline_pointer; | ||
345 | |||
337 | /* | 346 | /* |
338 | * Notification numbers for extended error reporting notifications: | 347 | * Notification numbers for extended error reporting notifications: |
339 | * The DASD_EER_DISABLE notification is sent before a dasd_device (and it's | 348 | * The DASD_EER_DISABLE notification is sent before a dasd_device (and it's |
@@ -386,6 +395,7 @@ struct dasd_device { | |||
386 | struct tasklet_struct tasklet; | 395 | struct tasklet_struct tasklet; |
387 | struct work_struct kick_work; | 396 | struct work_struct kick_work; |
388 | struct work_struct restore_device; | 397 | struct work_struct restore_device; |
398 | struct work_struct reload_device; | ||
389 | struct timer_list timer; | 399 | struct timer_list timer; |
390 | 400 | ||
391 | debug_info_t *debug_area; | 401 | debug_info_t *debug_area; |
@@ -582,6 +592,7 @@ void dasd_enable_device(struct dasd_device *); | |||
582 | void dasd_set_target_state(struct dasd_device *, int); | 592 | void dasd_set_target_state(struct dasd_device *, int); |
583 | void dasd_kick_device(struct dasd_device *); | 593 | void dasd_kick_device(struct dasd_device *); |
584 | void dasd_restore_device(struct dasd_device *); | 594 | void dasd_restore_device(struct dasd_device *); |
595 | void dasd_reload_device(struct dasd_device *); | ||
585 | 596 | ||
586 | void dasd_add_request_head(struct dasd_ccw_req *); | 597 | void dasd_add_request_head(struct dasd_ccw_req *); |
587 | void dasd_add_request_tail(struct dasd_ccw_req *); | 598 | void dasd_add_request_tail(struct dasd_ccw_req *); |
@@ -629,8 +640,6 @@ void dasd_devmap_exit(void); | |||
629 | struct dasd_device *dasd_create_device(struct ccw_device *); | 640 | struct dasd_device *dasd_create_device(struct ccw_device *); |
630 | void dasd_delete_device(struct dasd_device *); | 641 | void dasd_delete_device(struct dasd_device *); |
631 | 642 | ||
632 | int dasd_get_uid(struct ccw_device *, struct dasd_uid *); | ||
633 | int dasd_set_uid(struct ccw_device *, struct dasd_uid *); | ||
634 | int dasd_get_feature(struct ccw_device *, int); | 643 | int dasd_get_feature(struct ccw_device *, int); |
635 | int dasd_set_feature(struct ccw_device *, int, int); | 644 | int dasd_set_feature(struct ccw_device *, int, int); |
636 | 645 | ||