diff options
| author | jdolecek <jdolecek@NetBSD.org> | 2016-10-17 18:23:49 +0000 |
|---|---|---|
| committer | jdolecek <jdolecek@NetBSD.org> | 2016-10-17 18:23:49 +0000 |
| commit | 8488478b0ee76e618ffa49669c410d019db9bb2f (patch) | |
| tree | 7583a314d39e9ccfaa70684f392334435c7679d2 /sys | |
| parent | f4c0366070a3f0120a63c5c94369c6280907be21 (diff) | |
provide stub intr xname establish for xen
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/arch/xen/include/intr.h | 13 | ||||
| -rw-r--r-- | sys/arch/xen/x86/intr.c | 12 | ||||
| -rw-r--r-- | sys/dev/isa/files.isa | 3 | ||||
| -rw-r--r-- | sys/dev/isa/isa_stub.c | 57 |
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); +} |
