Annotation of src/sys/arch/hpcsh/include/intr.h, Revision 1.7.16.2
1.7.16.2! yamt 1: /* $NetBSD: intr.h,v 1.7.16.1 2006/12/30 20:46:04 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:
50: #define IPL_BIO 9 /* block I/O */
1.6 uch 51: #define IPL_NET 10 /* network */
52: #define IPL_TTY 11 /* terminal */
1.7.16.1 yamt 53: #define IPL_VM IPL_TTY
1.6 uch 54: #define IPL_SERIAL 11 /* serial */
1.5 uch 55: #define IPL_CLOCK 14 /* clock */
1.7.16.1 yamt 56: #define IPL_STATCLOCK IPL_CLOCK
57: #define IPL_SCHED IPL_CLOCK
1.5 uch 58: #define IPL_HIGH 15 /* everything */
1.7.16.1 yamt 59: #define IPL_LOCK IPL_HIGH
1.5 uch 60:
1.6 uch 61: #include <hpcsh/dev/hd6446x/hd6446xintcvar.h>
62:
1.7.16.2! yamt 63: typedef uint8_t ipl_t;
1.7.16.1 yamt 64: typedef struct {
65: ipl_t _ipl;
66: } ipl_cookie_t;
67:
68: static inline ipl_cookie_t
69: makeiplcookie(ipl_t ipl)
70: {
71:
72: return (ipl_cookie_t){._ipl = ipl << 4};
73: }
74:
75: static inline int
76: splraiseipl(ipl_cookie_t icookie)
77: {
78:
79: return hd6446x_intr_raise(icookie._ipl);
80: }
81:
82: #include <sys/spl.h>
1.1 itojun 83:
1.6 uch 84: #define spl0() hd6446x_intr_resume(0)
85: #define splx(x) hd6446x_intr_resume(x)
1.1 itojun 86:
1.5 uch 87: #endif /* !_HPCSH_INTR_H_ */
CVSweb <webmaster@jp.NetBSD.org>