Annotation of src/sys/arch/hpcsh/include/intr.h, Revision 1.7.16.3
1.7.16.3! yamt 1: /* $NetBSD: intr.h,v 1.7.16.2 2007/02/26 09:06:40 yamt Exp $ */
1.5 uch 2:
3: /*-
4: * Copyright (c) 2002 The NetBSD Foundation, Inc.
5: * All rights reserved.
6: *
7: * Redistribution and use in source and binary forms, with or without
8: * modification, are permitted provided that the following conditions
9: * are met:
10: * 1. Redistributions of source code must retain the above copyright
11: * notice, this list of conditions and the following disclaimer.
12: * 2. Redistributions in binary form must reproduce the above copyright
13: * notice, this list of conditions and the following disclaimer in the
14: * documentation and/or other materials provided with the distribution.
15: * 3. All advertising materials mentioning features or use of this software
16: * must display the following acknowledgement:
17: * This product includes software developed by the NetBSD
18: * Foundation, Inc. and its contributors.
19: * 4. Neither the name of The NetBSD Foundation nor the names of its
20: * contributors may be used to endorse or promote products derived
21: * from this software without specific prior written permission.
22: *
23: * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
24: * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
25: * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
26: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
27: * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33: * POSSIBILITY OF SUCH DAMAGE.
34: */
35:
1.2 uch 36: #ifndef _HPCSH_INTR_H_
37: #define _HPCSH_INTR_H_
1.1 itojun 38:
1.5 uch 39: #include <sh3/intr.h>
1.1 itojun 40:
1.7 uwe 41: /*
42: * See sys/arch/sh3/sh3/interrupt.c
43: * This was 8 for TMU0, TMU1, TMU2, SCIF * 4, HD6446x.
44: *
45: * For now bump this to 16 so that it's possible to do experiments
46: * with new drivers without hitting this limit.
47: */
48: #define _INTR_N 16
1.5 uch 49:
1.7.16.3! yamt 50: #define IPL_VM 11
! 51: #define IPL_SCHED 14
1.5 uch 52: #define IPL_HIGH 15 /* everything */
53:
1.6 uch 54: #include <hpcsh/dev/hd6446x/hd6446xintcvar.h>
55:
1.7.16.2 yamt 56: typedef uint8_t ipl_t;
1.7.16.1 yamt 57: typedef struct {
58: ipl_t _ipl;
59: } ipl_cookie_t;
60:
61: static inline ipl_cookie_t
62: makeiplcookie(ipl_t ipl)
63: {
64:
65: return (ipl_cookie_t){._ipl = ipl << 4};
66: }
67:
68: static inline int
69: splraiseipl(ipl_cookie_t icookie)
70: {
71:
72: return hd6446x_intr_raise(icookie._ipl);
73: }
74:
75: #include <sys/spl.h>
1.1 itojun 76:
1.6 uch 77: #define spl0() hd6446x_intr_resume(0)
78: #define splx(x) hd6446x_intr_resume(x)
1.1 itojun 79:
1.5 uch 80: #endif /* !_HPCSH_INTR_H_ */
CVSweb <webmaster@jp.NetBSD.org>