[BACK]Return to intr.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / xen / include

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>