initial commit
[freebsd-arm:freebsd-arm.git] / arm / include / katelib.h
1 /*      $NetBSD: katelib.h,v 1.3 2001/11/23 19:21:48 thorpej Exp $      */
2
3 /*-
4  * Copyright (c) 1994-1996 Mark Brinicombe.
5  * Copyright (c) 1994 Brini.
6  * All rights reserved.
7  *
8  * This code is derived from software written for Brini by Mark Brinicombe
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  * 3. All advertising materials mentioning features or use of this software
19  *    must display the following acknowledgement:
20  *      This product includes software developed by Brini.
21  * 4. The name of the company nor the name of the author may be used to
22  *    endorse or promote products derived from this software without specific
23  *    prior written permission.
24  *
25  * THIS SOFTWARE IS PROVIDED BY BRINI ``AS IS'' AND ANY EXPRESS OR IMPLIED
26  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
27  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
28  * IN NO EVENT SHALL BRINI OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
29  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
30  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35  * SUCH DAMAGE.
36  *
37  * RiscBSD kernel project
38  *
39  * katelib.h
40  *
41  * Prototypes for machine specific functions. Most of these
42  * could be inlined.
43  *
44  * This should not really be a separate header file. Eventually I will merge
45  * this into other header files once I have decided where the declarations
46  * should go. 
47  *
48  * Created      : 18/09/94
49  *
50  * Based on kate/katelib/prototypes.h
51  *
52  * $FreeBSD$
53  */
54
55 /*
56  * USE OF THIS FILE IS DEPRECATED
57  */
58
59 #ifndef _MACHINE_KATELIB_H_
60 #define _MACHINE_KATELIB_H_
61 #include <sys/types.h>
62 #include <machine/cpufunc.h>
63
64 #ifdef _KERNEL
65
66 /* Assembly modules */
67
68 /* In blockio.S */
69 #include <machine/blockio.h>
70
71 /* Macros for reading and writing words, shorts, bytes */
72
73 #define WriteWord(a, b) \
74 *((volatile unsigned int *)(a)) = (b)
75
76 #define ReadWord(a) \
77 (*((volatile unsigned int *)(a)))
78
79 #define WriteShort(a, b) \
80 *((volatile unsigned int *)(a)) = ((b) | ((b) << 16))
81
82 #define ReadShort(a) \
83 ((*((volatile unsigned int *)(a))) & 0xffff)
84
85 #define WriteByte(a, b) \
86 *((volatile unsigned char *)(a)) = (b)
87
88 #define ReadByte(a) \
89 (*((volatile unsigned char *)(a)))
90
91 /* Define in/out macros */
92
93 #define inb(port)               ReadByte((port))
94 #define outb(port, byte)        WriteByte((port), (byte))
95 #define inw(port)               ReadShort((port))
96 #define outw(port, word)        WriteShort((port), (word))
97 #define inl(port)               ReadWord((port))
98 #define outl(port, lword)       WriteWord((port), (lword))
99
100 #endif
101
102 #endif /* !_MACHINE_KATELIB_H_ */
103 /* End of katelib.h */