xref: /linux/drivers/s390/cio/eadm_sch.h (revision a06c3fad49a50d5d5eb078f93e70f4d3eca5d5a5)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef EADM_SCH_H
3 #define EADM_SCH_H
4 
5 #include <linux/completion.h>
6 #include <linux/device.h>
7 #include <linux/timer.h>
8 #include <linux/list.h>
9 #include "orb.h"
10 
11 struct eadm_private {
12 	union orb orb;
13 	enum {EADM_IDLE, EADM_BUSY, EADM_NOT_OPER} state;
14 	struct completion *completion;
15 	struct subchannel *sch;
16 	struct timer_list timer;
17 	struct list_head head;
18 } __aligned(8);
19 
20 #define get_eadm_private(n) ((struct eadm_private *)dev_get_drvdata(&n->dev))
21 #define set_eadm_private(n, p) (dev_set_drvdata(&n->dev, p))
22 
23 #endif
24