#include <linux/kernel_stat.h>
#include <linux/completion.h>
#include <linux/workqueue.h>
#include <linux/spinlock.h>
#include <linux/device.h>
#include <linux/module.h>
#include <asm/css_chars.h>
MODULE_DESCRIPTION("driver for s390 eadm subchannels");
#define EADM_TIMEOUT (7 * HZ)
static DEFINE_SPINLOCK(list_lock);
static LIST_HEAD(eadm_list);
static debug_info_t *eadm_debug;
#define EADM_LOG(imp, txt) do { \
debug_text_event(eadm_debug, imp, txt); \
static void EADM_LOG_HEX(int level, void *data, int length)
debug_event(eadm_debug, level, data, length);
static void orb_init(union orb *orb)
memset(orb, 0, sizeof(union orb));
static int eadm_subchannel_start(struct subchannel *sch, struct aob *aob)
union orb *orb = &get_eadm_private(sch)->orb;