aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/device.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/cio/device.h')
-rw-r--r--drivers/s390/cio/device.h28
1 files changed, 15 insertions, 13 deletions
diff --git a/drivers/s390/cio/device.h b/drivers/s390/cio/device.h
index 246c6482842c..379de2d1ec49 100644
--- a/drivers/s390/cio/device.h
+++ b/drivers/s390/cio/device.h
@@ -4,7 +4,7 @@
4#include <asm/ccwdev.h> 4#include <asm/ccwdev.h>
5#include <asm/atomic.h> 5#include <asm/atomic.h>
6#include <linux/wait.h> 6#include <linux/wait.h>
7 7#include <linux/notifier.h>
8#include "io_sch.h" 8#include "io_sch.h"
9 9
10/* 10/*
@@ -21,7 +21,6 @@ enum dev_state {
21 DEV_STATE_DISBAND_PGID, 21 DEV_STATE_DISBAND_PGID,
22 DEV_STATE_BOXED, 22 DEV_STATE_BOXED,
23 /* states to wait for i/o completion before doing something */ 23 /* states to wait for i/o completion before doing something */
24 DEV_STATE_CLEAR_VERIFY,
25 DEV_STATE_TIMEOUT_KILL, 24 DEV_STATE_TIMEOUT_KILL,
26 DEV_STATE_QUIESCE, 25 DEV_STATE_QUIESCE,
27 /* special states for devices gone not operational */ 26 /* special states for devices gone not operational */
@@ -29,6 +28,7 @@ enum dev_state {
29 DEV_STATE_DISCONNECTED_SENSE_ID, 28 DEV_STATE_DISCONNECTED_SENSE_ID,
30 DEV_STATE_CMFCHANGE, 29 DEV_STATE_CMFCHANGE,
31 DEV_STATE_CMFUPDATE, 30 DEV_STATE_CMFUPDATE,
31 DEV_STATE_STEAL_LOCK,
32 /* last element! */ 32 /* last element! */
33 NR_DEV_STATES 33 NR_DEV_STATES
34}; 34};
@@ -71,7 +71,6 @@ dev_fsm_final_state(struct ccw_device *cdev)
71 cdev->private->state == DEV_STATE_BOXED); 71 cdev->private->state == DEV_STATE_BOXED);
72} 72}
73 73
74extern struct workqueue_struct *ccw_device_work;
75extern wait_queue_head_t ccw_device_init_wq; 74extern wait_queue_head_t ccw_device_init_wq;
76extern atomic_t ccw_device_init_count; 75extern atomic_t ccw_device_init_count;
77int __init io_subchannel_init(void); 76int __init io_subchannel_init(void);
@@ -81,17 +80,16 @@ void io_subchannel_init_config(struct subchannel *sch);
81 80
82int ccw_device_cancel_halt_clear(struct ccw_device *); 81int ccw_device_cancel_halt_clear(struct ccw_device *);
83 82
84void ccw_device_do_unbind_bind(struct work_struct *);
85void ccw_device_move_to_orphanage(struct work_struct *);
86int ccw_device_is_orphan(struct ccw_device *); 83int ccw_device_is_orphan(struct ccw_device *);
87 84
88int ccw_device_recognition(struct ccw_device *); 85void ccw_device_recognition(struct ccw_device *);
89int ccw_device_online(struct ccw_device *); 86int ccw_device_online(struct ccw_device *);
90int ccw_device_offline(struct ccw_device *); 87int ccw_device_offline(struct ccw_device *);
91void ccw_device_update_sense_data(struct ccw_device *); 88void ccw_device_update_sense_data(struct ccw_device *);
92int ccw_device_test_sense_data(struct ccw_device *); 89int ccw_device_test_sense_data(struct ccw_device *);
93void ccw_device_schedule_sch_unregister(struct ccw_device *); 90void ccw_device_schedule_sch_unregister(struct ccw_device *);
94int ccw_purge_blacklisted(void); 91int ccw_purge_blacklisted(void);
92void ccw_device_sched_todo(struct ccw_device *cdev, enum cdev_todo todo);
95 93
96/* Function prototypes for device status and basic sense stuff. */ 94/* Function prototypes for device status and basic sense stuff. */
97void ccw_device_accumulate_irb(struct ccw_device *, struct irb *); 95void ccw_device_accumulate_irb(struct ccw_device *, struct irb *);
@@ -99,24 +97,28 @@ void ccw_device_accumulate_basic_sense(struct ccw_device *, struct irb *);
99int ccw_device_accumulate_and_sense(struct ccw_device *, struct irb *); 97int ccw_device_accumulate_and_sense(struct ccw_device *, struct irb *);
100int ccw_device_do_sense(struct ccw_device *, struct irb *); 98int ccw_device_do_sense(struct ccw_device *, struct irb *);
101 99
100/* Function prototype for internal request handling. */
101int lpm_adjust(int lpm, int mask);
102void ccw_request_start(struct ccw_device *);
103int ccw_request_cancel(struct ccw_device *cdev);
104void ccw_request_handler(struct ccw_device *cdev);
105void ccw_request_timeout(struct ccw_device *cdev);
106void ccw_request_notoper(struct ccw_device *cdev);
107
102/* Function prototypes for sense id stuff. */ 108/* Function prototypes for sense id stuff. */
103void ccw_device_sense_id_start(struct ccw_device *); 109void ccw_device_sense_id_start(struct ccw_device *);
104void ccw_device_sense_id_irq(struct ccw_device *, enum dev_event);
105void ccw_device_sense_id_done(struct ccw_device *, int); 110void ccw_device_sense_id_done(struct ccw_device *, int);
106 111
107/* Function prototypes for path grouping stuff. */ 112/* Function prototypes for path grouping stuff. */
108void ccw_device_sense_pgid_start(struct ccw_device *);
109void ccw_device_sense_pgid_irq(struct ccw_device *, enum dev_event);
110void ccw_device_sense_pgid_done(struct ccw_device *, int);
111
112void ccw_device_verify_start(struct ccw_device *); 113void ccw_device_verify_start(struct ccw_device *);
113void ccw_device_verify_irq(struct ccw_device *, enum dev_event);
114void ccw_device_verify_done(struct ccw_device *, int); 114void ccw_device_verify_done(struct ccw_device *, int);
115 115
116void ccw_device_disband_start(struct ccw_device *); 116void ccw_device_disband_start(struct ccw_device *);
117void ccw_device_disband_irq(struct ccw_device *, enum dev_event);
118void ccw_device_disband_done(struct ccw_device *, int); 117void ccw_device_disband_done(struct ccw_device *, int);
119 118
119void ccw_device_stlck_start(struct ccw_device *, void *, void *, void *);
120void ccw_device_stlck_done(struct ccw_device *, void *, int);
121
120int ccw_device_call_handler(struct ccw_device *); 122int ccw_device_call_handler(struct ccw_device *);
121 123
122int ccw_device_stlck(struct ccw_device *); 124int ccw_device_stlck(struct ccw_device *);