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