summaryrefslogtreecommitdiffstats
path: root/sys/dev/xen/console
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/xen/console')
-rw-r--r--sys/dev/xen/console/console.c18
-rw-r--r--sys/dev/xen/console/xencons_ring.c18
2 files changed, 18 insertions, 18 deletions
diff --git a/sys/dev/xen/console/console.c b/sys/dev/xen/console/console.c
index 6281bf2..65a0e7d 100644
--- a/sys/dev/xen/console/console.c
+++ b/sys/dev/xen/console/console.c
@@ -15,7 +15,7 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h>
#include <sys/bus.h>
#include <machine/stdarg.h>
-#include <machine/xen/xen-os.h>
+#include <xen/xen-os.h>
#include <xen/hypervisor.h>
#include <xen/xen_intr.h>
#include <sys/cons.h>
@@ -71,6 +71,8 @@ static char rbuf[RBUF_SIZE];
static int rc, rp;
static unsigned int cnsl_evt_reg;
static unsigned int wc, wp; /* write_cons, write_prod */
+xen_intr_handle_t xen_intr_handle;
+device_t xencons_dev;
#ifdef KDB
static int xc_altbrk;
@@ -232,6 +234,7 @@ xc_attach(device_t dev)
{
int error;
+ xencons_dev = dev;
xccons = tty_alloc(&xc_ttydevsw, NULL);
tty_makedev(xccons, NULL, "xc%r", 0);
@@ -243,15 +246,10 @@ xc_attach(device_t dev)
callout_reset(&xc_callout, XC_POLLTIME, xc_timeout, xccons);
if (xen_start_info->flags & SIF_INITDOMAIN) {
- error = bind_virq_to_irqhandler(
- VIRQ_CONSOLE,
- 0,
- "console",
- NULL,
- xencons_priv_interrupt, NULL,
- INTR_TYPE_TTY, NULL);
-
- KASSERT(error >= 0, ("can't register console interrupt"));
+ error = xen_intr_bind_virq(dev, VIRQ_CONSOLE, 0, NULL,
+ xencons_priv_interrupt, NULL,
+ INTR_TYPE_TTY, &xen_intr_handle);
+ KASSERT(error >= 0, ("can't register console interrupt"));
}
/* register handler to flush console on shutdown */
diff --git a/sys/dev/xen/console/xencons_ring.c b/sys/dev/xen/console/xencons_ring.c
index 077d286..3701551 100644
--- a/sys/dev/xen/console/xencons_ring.c
+++ b/sys/dev/xen/console/xencons_ring.c
@@ -16,7 +16,8 @@ __FBSDID("$FreeBSD$");
#include <sys/cons.h>
#include <machine/stdarg.h>
-#include <machine/xen/xen-os.h>
+
+#include <xen/xen-os.h>
#include <xen/hypervisor.h>
#include <xen/xen_intr.h>
#include <sys/cons.h>
@@ -30,9 +31,10 @@ __FBSDID("$FreeBSD$");
#include <xen/interface/io/console.h>
#define console_evtchn console.domU.evtchn
-static unsigned int console_irq;
+xen_intr_handle_t console_handle;
extern char *console_page;
extern struct mtx cn_mtx;
+extern device_t xencons_dev;
static inline struct xencons_interface *
xencons_interface(void)
@@ -74,7 +76,7 @@ xencons_ring_send(const char *data, unsigned len)
wmb();
intf->out_prod = prod;
- notify_remote_via_evtchn(xen_start_info->console_evtchn);
+ xen_intr_signal(console_handle);
return sent;
@@ -106,7 +108,7 @@ xencons_handle_input(void *unused)
intf->in_cons = cons;
CN_LOCK(cn_mtx);
- notify_remote_via_evtchn(xen_start_info->console_evtchn);
+ xen_intr_signal(console_handle);
xencons_tx();
CN_UNLOCK(cn_mtx);
@@ -126,9 +128,9 @@ xencons_ring_init(void)
if (!xen_start_info->console_evtchn)
return 0;
- err = bind_caller_port_to_irqhandler(xen_start_info->console_evtchn,
- "xencons", xencons_handle_input, NULL,
- INTR_TYPE_MISC | INTR_MPSAFE, &console_irq);
+ err = xen_intr_bind_local_port(xencons_dev,
+ xen_start_info->console_evtchn, NULL, xencons_handle_input, NULL,
+ INTR_TYPE_MISC | INTR_MPSAFE, &console_handle);
if (err) {
return err;
}
@@ -146,7 +148,7 @@ xencons_suspend(void)
if (!xen_start_info->console_evtchn)
return;
- unbind_from_irqhandler(console_irq);
+ xen_intr_unbind(&console_handle);
}
void
OpenPOWER on IntegriCloud