Annotation of src/sys/arch/xen/include/intr.h, Revision 1.45.2.3
1.45.2.3! pgoyette 1: /* $NetBSD$ */
1.3 bouyer 2: /* NetBSD intr.h,v 1.15 2004/10/31 10:39:34 yamt Exp */
3:
4: /*-
5: * Copyright (c) 1998, 2001 The NetBSD Foundation, Inc.
6: * All rights reserved.
7: *
8: * This code is derived from software contributed to The NetBSD Foundation
9: * by Charles M. Hannum, and by Jason R. Thorpe.
10: *
11: * Redistribution and use in source and binary forms, with or without
12: * modification, are permitted provided that the following conditions
13: * are met:
14: * 1. Redistributions of source code must retain the above copyright
15: * notice, this list of conditions and the following disclaimer.
16: * 2. Redistributions in binary form must reproduce the above copyright
17: * notice, this list of conditions and the following disclaimer in the
18: * documentation and/or other materials provided with the distribution.
19: *
20: * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
21: * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22: * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
24: * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30: * POSSIBILITY OF SUCH DAMAGE.
31: */
1.1 cl 32:
33: #ifndef _XEN_INTR_H_
34: #define _XEN_INTR_H_
35:
1.22 bouyer 36: #include <machine/intrdefs.h>
1.1 cl 37:
38: #ifndef _LOCORE
1.42 cherry 39: #include <xen/xen-public/xen.h>
40: #include <x86/intr.h>
1.19 bouyer 41: #include <xen/xen.h>
42: #include <xen/hypervisor.h>
1.3 bouyer 43: #include <machine/pic.h>
1.30 dyoung 44: #include <sys/evcnt.h>
1.3 bouyer 45:
1.10 bouyer 46: #include "opt_xen.h"
47:
1.34 bouyer 48:
49: struct cpu_info;
1.3 bouyer 50: /*
51: * Struct describing an event channel.
52: */
53:
54: struct evtsource {
55: int ev_maxlevel; /* max. IPL for this source */
1.24 cegger 56: uint32_t ev_imask; /* interrupt mask */
1.3 bouyer 57: struct intrhand *ev_handlers; /* handler chain */
58: struct evcnt ev_evcnt; /* interrupt counter */
1.33 cherry 59: struct cpu_info *ev_cpu; /* cpu on which this event is bound */
1.45.2.1 pgoyette 60: char ev_intrname[32]; /* interrupt string */
61: char ev_xname[64]; /* handler device list */
1.3 bouyer 62: };
63:
1.45.2.3! pgoyette 64: #define XMASK(ci,level) (ci)->ci_xmask[(level)]
! 65: #define XUNMASK(ci,level) (ci)->ci_xunmask[(level)]
! 66:
1.1 cl 67: extern struct intrstub xenev_stubs[];
1.45 bouyer 68: extern int irq2port[NR_EVENT_CHANNELS]; /* actually port + 1, so that 0 is invaid */
1.36 knakahar 69:
1.25 cegger 70: #ifdef MULTIPROCESSOR
1.42 cherry 71: int xen_intr_biglock_wrapper(void *);
1.25 cegger 72: #endif
73:
1.43 cherry 74: #if defined(DOM0OPS) || NPCI > 0
1.45.2.2 pgoyette 75: int xen_vec_alloc(int);
76: int xen_pic_to_gsi(struct pic *, int);
1.43 cherry 77: #endif /* defined(DOM0OPS) || NPCI > 0 */
1.10 bouyer 78:
1.32 cherry 79: #ifdef MULTIPROCESSOR
80: void xen_ipi_init(void);
81: int xen_send_ipi(struct cpu_info *, uint32_t);
82: void xen_broadcast_ipi(uint32_t);
83: #else
1.33 cherry 84: #define xen_ipi_init(_1) ((void) 0) /* nothing */
85: #define xen_send_ipi(_i1, _i2) (0) /* nothing */
86: #define xen_broadcast_ipi(_i1) ((void) 0) /* nothing */
1.32 cherry 87: #endif /* MULTIPROCESSOR */
1.45.2.3! pgoyette 88:
! 89: void *xen_intr_establish_xname(int, struct pic *, int, int, int, int (*)(void *),
! 90: void *, bool, const char *);
! 91: void *xen_intr_establish(int, struct pic *, int, int, int, int (*)(void *),
! 92: void *, bool);
! 93: void xen_intr_disestablish(struct intrhand *);
! 94:
1.3 bouyer 95: #endif /* !_LOCORE */
96:
1.1 cl 97: #endif /* _XEN_INTR_H_ */
CVSweb <webmaster@jp.NetBSD.org>