summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorjdolecek <jdolecek@NetBSD.org>2016-10-17 18:23:49 +0000
committerjdolecek <jdolecek@NetBSD.org>2016-10-17 18:23:49 +0000
commit8488478b0ee76e618ffa49669c410d019db9bb2f (patch)
tree7583a314d39e9ccfaa70684f392334435c7679d2 /sys
parentf4c0366070a3f0120a63c5c94369c6280907be21 (diff)
provide stub intr xname establish for xen
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/xen/include/intr.h13
-rw-r--r--sys/arch/xen/x86/intr.c12
-rw-r--r--sys/dev/isa/files.isa3
-rw-r--r--sys/dev/isa/isa_stub.c57
4 files changed, 73 insertions, 12 deletions
diff --git a/sys/arch/xen/include/intr.h b/sys/arch/xen/include/intr.h
index 9bb00b014c2..6fcf958c919 100644
--- a/sys/arch/xen/include/intr.h
+++ b/sys/arch/xen/include/intr.h
@@ -1,4 +1,4 @@
-/* $NetBSD: intr.h,v 1.38 2016/10/16 06:40:43 kre Exp $ */
+/* $NetBSD: intr.h,v 1.39 2016/10/17 18:23:50 jdolecek Exp $ */
/* NetBSD intr.h,v 1.15 2004/10/31 10:39:34 yamt Exp */
/*-
@@ -164,6 +164,8 @@ void intr_default_setup(void);
int x86_nmi(void);
void *intr_establish(int, struct pic *, int, int, int, int (*)(void *), void *, bool);
+void *intr_establish_xname(int, struct pic *, int, int, int, int (*)(void *), void *,
+ bool, const char *);
void intr_disestablish(struct intrhand *);
const char *intr_string(intr_handle_t);
void cpu_intr_init(struct cpu_info *);
@@ -184,15 +186,6 @@ void xen_broadcast_ipi(uint32_t);
#define xen_send_ipi(_i1, _i2) (0) /* nothing */
#define xen_broadcast_ipi(_i1) ((void) 0) /* nothing */
#endif /* MULTIPROCESSOR */
-
-/*
- * XXX Hack: allow xen kernels to build with recent (Oct 2016) changes
- * to acpi interrupt establishment (until a better solution)
- */
-#define intr_establish_xname(a,b,c,d,e,f,g,h,i) intr_establish(a,b,c,d,e,f,g,h)
-#define isa_intr_establish_xname(a,b,c,d,e,f,g) isa_intr_establish(a,b,c,d,e,f)
-/* kcaH XXX */
-
#endif /* !_LOCORE */
#endif /* _XEN_INTR_H_ */
diff --git a/sys/arch/xen/x86/intr.c b/sys/arch/xen/x86/intr.c
index 5432d41d99a..e9ccd792e89 100644
--- a/sys/arch/xen/x86/intr.c
+++ b/sys/arch/xen/x86/intr.c
@@ -103,7 +103,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.29 2011/08/13 16:22:15 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.30 2016/10/17 18:23:50 jdolecek Exp $");
#include "opt_multiprocessor.h"
#include "opt_xen.h"
@@ -187,6 +187,16 @@ cpu_intr_init(struct cpu_info *ci)
#if NPCI > 0 || NISA > 0
void *
+intr_establish_xname(int legacy_irq, struct pic *pic, int pin,
+ int type, int level, int (*handler)(void *) , void *arg,
+ bool known_mpsafe, const char *xname)
+{
+ /* XXX xname registration not supported */
+ return intr_establish(legacy_irq, pic, pin, type, level, handler, arg,
+ known_mpsafe);
+}
+
+void *
intr_establish(int legacy_irq, struct pic *pic, int pin,
int type, int level, int (*handler)(void *) , void *arg,
bool known_mpsafe)
diff --git a/sys/dev/isa/files.isa b/sys/dev/isa/files.isa
index d3f67791619..9a137514533 100644
--- a/sys/dev/isa/files.isa
+++ b/sys/dev/isa/files.isa
@@ -1,4 +1,4 @@
-# $NetBSD: files.isa,v 1.163 2013/06/10 07:14:02 kardel Exp $
+# $NetBSD: files.isa,v 1.164 2016/10/17 18:23:49 jdolecek Exp $
#
# Config file and device description for machine-independent ISA code.
# Included by ports that need it. Requires that the SCSI files be
@@ -13,6 +13,7 @@ device isa {[port = -1], [size = 0],
[irq = -1], [drq = -1], [drq2 = -1]}
attach isa at isabus
file dev/isa/isa.c isa needs-flag
+file dev/isa/isa_stub.c isa
file dev/isa/isabusprint.c isabus
diff --git a/sys/dev/isa/isa_stub.c b/sys/dev/isa/isa_stub.c
new file mode 100644
index 00000000000..059a86e5b87
--- /dev/null
+++ b/sys/dev/isa/isa_stub.c
@@ -0,0 +1,57 @@
+/* $NetBSD: isa_stub.c,v 1.1 2016/10/17 18:23:49 jdolecek Exp $ */
+
+/*-
+ * Copyright (c) 2016 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Charles M. Hannum; by Jason R. Thorpe of Wasabi Systems, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: isa_stub.c,v 1.1 2016/10/17 18:23:49 jdolecek Exp $");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/malloc.h>
+#include <sys/device.h>
+
+#include <sys/intr.h>
+
+#include <dev/isa/isareg.h>
+#include <dev/isa/isavar.h>
+#include <dev/isa/isadmareg.h>
+
+void *default_isa_intr_establish_xname(isa_chipset_tag_t ic, int irq,
+ int type,
+ int level, int (*ih_fun)(void *), void *ih_arg, const char *xname);
+__strict_weak_alias(isa_intr_establish_xname, default_isa_intr_establish_xname);
+
+void *
+default_isa_intr_establish_xname(isa_chipset_tag_t ic, int irq, int type,
+ int level, int (*ih_fun)(void *), void *ih_arg, const char *xname)
+{
+ return isa_intr_establish(ic, irq, type, level, ih_fun, ih_arg);
+}