]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/arm/xscale/ixp425/ixp425_intr.h
arm: make some use of mallocarray(9).
[FreeBSD/FreeBSD.git] / sys / arm / xscale / ixp425 / ixp425_intr.h
1 /*      $NetBSD: ixp425_intr.h,v 1.6 2005/12/24 20:06:52 perry Exp $    */
2
3 /*-
4  * SPDX-License-Identifier: BSD-4-Clause
5  *
6  * Copyright (c) 2001, 2002 Wasabi Systems, Inc.
7  * All rights reserved.
8  *
9  * Written by Jason R. Thorpe for Wasabi Systems, Inc.
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  * 3. All advertising materials mentioning features or use of this software
20  *    must display the following acknowledgement:
21  *      This product includes software developed for the NetBSD Project by
22  *      Wasabi Systems, Inc.
23  * 4. The name of Wasabi Systems, Inc. may not be used to endorse
24  *    or promote products derived from this software without specific prior
25  *    written permission.
26  *
27  * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
28  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
29  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL WASABI SYSTEMS, INC
31  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37  * POSSIBILITY OF SUCH DAMAGE.
38  *
39  * $FreeBSD$
40  *
41  */
42
43 #ifndef _IXP425_INTR_H_
44 #define _IXP425_INTR_H_
45
46 #define ARM_IRQ_HANDLER _C_LABEL(ixp425_intr_dispatch)
47
48 #ifndef _LOCORE
49
50 #include <machine/armreg.h>
51
52 #include <arm/xscale/ixp425/ixp425reg.h>
53
54 #define IXPREG(reg)     *((__volatile u_int32_t*) (reg))
55
56 void ixp425_do_pending(void);
57
58 extern __volatile uint32_t intr_enabled;
59 extern uint32_t intr_steer;
60
61 static __inline void __attribute__((__unused__))
62 ixp425_set_intrmask(void)
63 {
64         IXPREG(IXP425_INT_ENABLE) = intr_enabled & IXP425_INT_HWMASK;
65 }
66
67 static __inline void
68 ixp425_set_intrsteer(void)
69 {
70         IXPREG(IXP425_INT_SELECT) = intr_steer & IXP425_INT_HWMASK;
71 }
72
73 extern __volatile uint32_t intr_enabled2;
74 extern uint32_t intr_steer2;
75
76 static __inline void __attribute__((__unused__))
77 ixp435_set_intrmask(void)
78 {
79         IXPREG(IXP435_INT_ENABLE2) = intr_enabled2 & IXP435_INT_HWMASK;
80 }
81
82 static __inline void
83 ixp435_set_intrsteer(void)
84 {
85         IXPREG(IXP435_INT_SELECT2) = intr_steer2 & IXP435_INT_HWMASK;
86 }
87
88 #endif /* _LOCORE */
89
90 #endif /* _IXP425_INTR_H_ */