Module Name: src
Committed By: jdolecek
Date: Mon Oct 17 18:23:50 UTC 2016
Modified Files:
src/sys/arch/xen/include: intr.h
src/sys/arch/xen/x86: intr.c
src/sys/dev/isa: files.isa
Added Files:
src/sys/dev/isa: isa_stub.c
Log Message:
provide stub intr xname establish for xen
To generate a diff of this commit:
cvs rdiff -u -r1.38 -r1.39 src/sys/arch/xen/include/intr.h
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/xen/x86/intr.c
cvs rdiff -u -r1.163 -r1.164 src/sys/dev/isa/files.isa
cvs rdiff -u -r0 -r1.1 src/sys/dev/isa/isa_stub.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/xen/include/intr.h
diff -u src/sys/arch/xen/include/intr.h:1.38 src/sys/arch/xen/include/intr.h:1.39
--- src/sys/arch/xen/include/intr.h:1.38 Sun Oct 16 06:40:43 2016
+++ src/sys/arch/xen/include/intr.h Mon Oct 17 18:23:50 2016
@@ -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_ */
Index: src/sys/arch/xen/x86/intr.c
diff -u src/sys/arch/xen/x86/intr.c:1.29 src/sys/arch/xen/x86/intr.c:1.30
--- src/sys/arch/xen/x86/intr.c:1.29 Sat Aug 13 16:22:15 2011
+++ src/sys/arch/xen/x86/intr.c Mon Oct 17 18:23:50 2016
@@ -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)
Index: src/sys/dev/isa/files.isa
diff -u src/sys/dev/isa/files.isa:1.163 src/sys/dev/isa/files.isa:1.164
--- src/sys/dev/isa/files.isa:1.163 Mon Jun 10 07:14:02 2013
+++ src/sys/dev/isa/files.isa Mon Oct 17 18:23:49 2016
@@ -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
Added files:
Index: src/sys/dev/isa/isa_stub.c
diff -u /dev/null src/sys/dev/isa/isa_stub.c:1.1
--- /dev/null Mon Oct 17 18:23:50 2016
+++ src/sys/dev/isa/isa_stub.c Mon Oct 17 18:23:49 2016
@@ -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);
+}