bus.h revision 206404
1188808Sgonzo/*	$NetBSD: bus.h,v 1.11 2003/07/28 17:35:54 thorpej Exp $	*/
2188808Sgonzo
3188808Sgonzo/*-
4188808Sgonzo * Copyright (c) 1996, 1997, 1998, 2001 The NetBSD Foundation, Inc.
5188808Sgonzo * All rights reserved.
6188808Sgonzo *
7188808Sgonzo * This code is derived from software contributed to The NetBSD Foundation
8188808Sgonzo * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
9188808Sgonzo * NASA Ames Research Center.
10188808Sgonzo *
11188808Sgonzo * Redistribution and use in source and binary forms, with or without
12188808Sgonzo * modification, are permitted provided that the following conditions
13188808Sgonzo * are met:
14188808Sgonzo * 1. Redistributions of source code must retain the above copyright
15188808Sgonzo *    notice, this list of conditions and the following disclaimer.
16188808Sgonzo * 2. Redistributions in binary form must reproduce the above copyright
17188808Sgonzo *    notice, this list of conditions and the following disclaimer in the
18188808Sgonzo *    documentation and/or other materials provided with the distribution.
19188808Sgonzo *
20188808Sgonzo * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
21188808Sgonzo * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22188808Sgonzo * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23188808Sgonzo * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
24188808Sgonzo * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25188808Sgonzo * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26188808Sgonzo * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27188808Sgonzo * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28188808Sgonzo * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29188808Sgonzo * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30188808Sgonzo * POSSIBILITY OF SUCH DAMAGE.
31188808Sgonzo */
32188808Sgonzo
33188808Sgonzo/*-
34192783Sgonzo * Copyright (c) 1996 Charles M. Hannum.  All rights reserved.
35192783Sgonzo * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
36192783Sgonzo *
37192783Sgonzo * Redistribution and use in source and binary forms, with or without
38234859Sadrian * modification, are permitted provided that the following conditions
39234859Sadrian * are met:
40188808Sgonzo * 1. Redistributions of source code must retain the above copyright
41188808Sgonzo *    notice, this list of conditions and the following disclaimer.
42188808Sgonzo * 2. Redistributions in binary form must reproduce the above copyright
43188808Sgonzo *    notice, this list of conditions and the following disclaimer in the
44257284Sglebius *    documentation and/or other materials provided with the distribution.
45188808Sgonzo * 3. All advertising materials mentioning features or use of this software
46188808Sgonzo *    must display the following acknowledgement:
47257284Sglebius *      This product includes software developed by Christopher G. Demetriou
48188808Sgonzo *	for the NetBSD Project.
49188808Sgonzo * 4. The name of the author may not be used to endorse or promote products
50188808Sgonzo *    derived from this software without specific prior written permission
51188808Sgonzo *
52209802Sadrian * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
53188808Sgonzo * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
54188808Sgonzo * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
55257284Sglebius * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
56257284Sglebius * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
57188808Sgonzo * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
58188808Sgonzo * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
59188808Sgonzo * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
60188808Sgonzo * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
61188808Sgonzo * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
62188808Sgonzo *
63188808Sgonzo * $FreeBSD: head/sys/arm/include/bus.h 206404 2010-04-08 19:34:55Z imp $
64188808Sgonzo */
65188808Sgonzo
66188808Sgonzo#ifndef _MACHINE_BUS_H_
67188808Sgonzo#define _MACHINE_BUS_H_
68188808Sgonzo
69188808Sgonzo#include <machine/_bus.h>
70188808Sgonzo
71188808Sgonzo/*
72188808Sgonzo *	int bus_space_map  (bus_space_tag_t t, bus_addr_t addr,
73188808Sgonzo *	    bus_size_t size, int flags, bus_space_handle_t *bshp);
74188808Sgonzo *
75188808Sgonzo * Map a region of bus space.
76188808Sgonzo */
77234862Sadrian
78234862Sadrian#define	BUS_SPACE_MAP_CACHEABLE		0x01
79234862Sadrian#define	BUS_SPACE_MAP_LINEAR		0x02
80292766Sadrian#define	BUS_SPACE_MAP_PREFETCHABLE     	0x04
81234862Sadrian
82234862Sadrianstruct bus_space {
83234862Sadrian	/* cookie */
84234862Sadrian	void		*bs_cookie;
85234862Sadrian
86188808Sgonzo	/* mapping/unmapping */
87188808Sgonzo	int		(*bs_map) (void *, bus_addr_t, bus_size_t,
88234862Sadrian			    int, bus_space_handle_t *);
89188808Sgonzo	void		(*bs_unmap) (void *, bus_space_handle_t, bus_size_t);
90188808Sgonzo	int		(*bs_subregion) (void *, bus_space_handle_t,
91188808Sgonzo			    bus_size_t, bus_size_t, bus_space_handle_t *);
92280798Sadrian
93280798Sadrian	/* allocation/deallocation */
94188808Sgonzo	int		(*bs_alloc) (void *, bus_addr_t, bus_addr_t,
95256575Sadrian			    bus_size_t, bus_size_t, bus_size_t, int,
96290910Sadrian			    bus_addr_t *, bus_space_handle_t *);
97279510Sadrian	void		(*bs_free) (void *, bus_space_handle_t,
98188808Sgonzo			    bus_size_t);
99219589Sadrian
100211477Sadrian	/* get kernel virtual address */
101280124Sadrian	/* barrier */
102188808Sgonzo	void		(*bs_barrier) (void *, bus_space_handle_t,
103220354Sadrian			    bus_size_t, bus_size_t, int);
104220354Sadrian
105220356Sadrian	/* read (single) */
106220356Sadrian	u_int8_t	(*bs_r_1) (void *, bus_space_handle_t, bus_size_t);
107220356Sadrian	u_int16_t	(*bs_r_2) (void *, bus_space_handle_t, bus_size_t);
108220356Sadrian	u_int32_t	(*bs_r_4) (void *, bus_space_handle_t, bus_size_t);
109220356Sadrian	u_int64_t	(*bs_r_8) (void *, bus_space_handle_t, bus_size_t);
110234919Sadrian
111220354Sadrian	/* read multiple */
112220354Sadrian	void		(*bs_rm_1) (void *, bus_space_handle_t, bus_size_t,
113234910Sadrian	    u_int8_t *, bus_size_t);
114234910Sadrian	void		(*bs_rm_2) (void *, bus_space_handle_t, bus_size_t,
115234910Sadrian	    u_int16_t *, bus_size_t);
116234910Sadrian	void		(*bs_rm_4) (void *, bus_space_handle_t,
117234910Sadrian			    bus_size_t, u_int32_t *, bus_size_t);
118279510Sadrian	void		(*bs_rm_8) (void *, bus_space_handle_t,
119279510Sadrian			    bus_size_t, u_int64_t *, bus_size_t);
120234910Sadrian
121234910Sadrian	/* read region */
122188808Sgonzo	void		(*bs_rr_1) (void *, bus_space_handle_t,
123220354Sadrian			    bus_size_t, u_int8_t *, bus_size_t);
124220354Sadrian	void		(*bs_rr_2) (void *, bus_space_handle_t,
125220354Sadrian			    bus_size_t, u_int16_t *, bus_size_t);
126220354Sadrian	void		(*bs_rr_4) (void *, bus_space_handle_t,
127220354Sadrian			    bus_size_t, u_int32_t *, bus_size_t);
128188808Sgonzo	void		(*bs_rr_8) (void *, bus_space_handle_t,
129220354Sadrian			    bus_size_t, u_int64_t *, bus_size_t);
130188808Sgonzo
131188808Sgonzo	/* write (single) */
132188808Sgonzo	void		(*bs_w_1) (void *, bus_space_handle_t,
133188808Sgonzo			    bus_size_t, u_int8_t);
134188808Sgonzo	void		(*bs_w_2) (void *, bus_space_handle_t,
135188808Sgonzo			    bus_size_t, u_int16_t);
136188808Sgonzo	void		(*bs_w_4) (void *, bus_space_handle_t,
137188808Sgonzo			    bus_size_t, u_int32_t);
138188808Sgonzo	void		(*bs_w_8) (void *, bus_space_handle_t,
139188808Sgonzo			    bus_size_t, u_int64_t);
140188808Sgonzo
141232914Sadrian	/* write multiple */
142199234Sgonzo	void		(*bs_wm_1) (void *, bus_space_handle_t,
143188808Sgonzo			    bus_size_t, const u_int8_t *, bus_size_t);
144188808Sgonzo	void		(*bs_wm_2) (void *, bus_space_handle_t,
145188808Sgonzo			    bus_size_t, const u_int16_t *, bus_size_t);
146188808Sgonzo	void		(*bs_wm_4) (void *, bus_space_handle_t,
147188808Sgonzo			    bus_size_t, const u_int32_t *, bus_size_t);
148188808Sgonzo	void		(*bs_wm_8) (void *, bus_space_handle_t,
149188808Sgonzo			    bus_size_t, const u_int64_t *, bus_size_t);
150232912Sadrian
151188808Sgonzo	/* write region */
152255300Sloos	void		(*bs_wr_1) (void *, bus_space_handle_t,
153192821Sgonzo			    bus_size_t, const u_int8_t *, bus_size_t);
154198667Sgonzo	void		(*bs_wr_2) (void *, bus_space_handle_t,
155192821Sgonzo			    bus_size_t, const u_int16_t *, bus_size_t);
156194059Sgonzo	void		(*bs_wr_4) (void *, bus_space_handle_t,
157188808Sgonzo			    bus_size_t, const u_int32_t *, bus_size_t);
158188808Sgonzo	void		(*bs_wr_8) (void *, bus_space_handle_t,
159188808Sgonzo			    bus_size_t, const u_int64_t *, bus_size_t);
160188808Sgonzo
161188808Sgonzo	/* set multiple */
162198667Sgonzo	void		(*bs_sm_1) (void *, bus_space_handle_t,
163188808Sgonzo			    bus_size_t, u_int8_t, bus_size_t);
164188808Sgonzo	void		(*bs_sm_2) (void *, bus_space_handle_t,
165188808Sgonzo			    bus_size_t, u_int16_t, bus_size_t);
166188808Sgonzo	void		(*bs_sm_4) (void *, bus_space_handle_t,
167188808Sgonzo			    bus_size_t, u_int32_t, bus_size_t);
168234862Sadrian	void		(*bs_sm_8) (void *, bus_space_handle_t,
169234862Sadrian			    bus_size_t, u_int64_t, bus_size_t);
170199234Sgonzo
171199234Sgonzo	/* set region */
172199234Sgonzo	void		(*bs_sr_1) (void *, bus_space_handle_t,
173199234Sgonzo			    bus_size_t, u_int8_t, bus_size_t);
174199234Sgonzo	void		(*bs_sr_2) (void *, bus_space_handle_t,
175199234Sgonzo			    bus_size_t, u_int16_t, bus_size_t);
176188808Sgonzo	void		(*bs_sr_4) (void *, bus_space_handle_t,
177188808Sgonzo			    bus_size_t, u_int32_t, bus_size_t);
178188808Sgonzo	void		(*bs_sr_8) (void *, bus_space_handle_t,
179188808Sgonzo			    bus_size_t, u_int64_t, bus_size_t);
180188808Sgonzo
181188808Sgonzo	/* copy */
182188808Sgonzo	void		(*bs_c_1) (void *, bus_space_handle_t, bus_size_t,
183188808Sgonzo			    bus_space_handle_t, bus_size_t, bus_size_t);
184188808Sgonzo	void		(*bs_c_2) (void *, bus_space_handle_t, bus_size_t,
185188808Sgonzo			    bus_space_handle_t, bus_size_t, bus_size_t);
186188808Sgonzo	void		(*bs_c_4) (void *, bus_space_handle_t, bus_size_t,
187188808Sgonzo			    bus_space_handle_t, bus_size_t, bus_size_t);
188188808Sgonzo	void		(*bs_c_8) (void *, bus_space_handle_t, bus_size_t,
189188808Sgonzo			    bus_space_handle_t, bus_size_t, bus_size_t);
190188808Sgonzo
191188808Sgonzo	/* read stream (single) */
192188808Sgonzo	u_int8_t	(*bs_r_1_s) (void *, bus_space_handle_t, bus_size_t);
193188808Sgonzo	u_int16_t	(*bs_r_2_s) (void *, bus_space_handle_t, bus_size_t);
194188808Sgonzo	u_int32_t	(*bs_r_4_s) (void *, bus_space_handle_t, bus_size_t);
195188808Sgonzo	u_int64_t	(*bs_r_8_s) (void *, bus_space_handle_t, bus_size_t);
196234862Sadrian
197234862Sadrian	/* read multiple stream */
198234862Sadrian	void		(*bs_rm_1_s) (void *, bus_space_handle_t, bus_size_t,
199234862Sadrian	    u_int8_t *, bus_size_t);
200227843Smarius	void		(*bs_rm_2_s) (void *, bus_space_handle_t, bus_size_t,
201188808Sgonzo	    u_int16_t *, bus_size_t);
202188808Sgonzo	void		(*bs_rm_4_s) (void *, bus_space_handle_t,
203188808Sgonzo			    bus_size_t, u_int32_t *, bus_size_t);
204188808Sgonzo	void		(*bs_rm_8_s) (void *, bus_space_handle_t,
205188808Sgonzo			    bus_size_t, u_int64_t *, bus_size_t);
206188808Sgonzo
207188808Sgonzo	/* read region stream */
208188808Sgonzo	void		(*bs_rr_1_s) (void *, bus_space_handle_t,
209188808Sgonzo			    bus_size_t, u_int8_t *, bus_size_t);
210188808Sgonzo	void		(*bs_rr_2_s) (void *, bus_space_handle_t,
211188808Sgonzo			    bus_size_t, u_int16_t *, bus_size_t);
212188808Sgonzo	void		(*bs_rr_4_s) (void *, bus_space_handle_t,
213188808Sgonzo			    bus_size_t, u_int32_t *, bus_size_t);
214234862Sadrian	void		(*bs_rr_8_s) (void *, bus_space_handle_t,
215234862Sadrian			    bus_size_t, u_int64_t *, bus_size_t);
216234862Sadrian
217234862Sadrian	/* write stream (single) */
218234862Sadrian	void		(*bs_w_1_s) (void *, bus_space_handle_t,
219188808Sgonzo			    bus_size_t, u_int8_t);
220234862Sadrian	void		(*bs_w_2_s) (void *, bus_space_handle_t,
221234862Sadrian			    bus_size_t, u_int16_t);
222234862Sadrian	void		(*bs_w_4_s) (void *, bus_space_handle_t,
223234862Sadrian			    bus_size_t, u_int32_t);
224234862Sadrian	void		(*bs_w_8_s) (void *, bus_space_handle_t,
225234862Sadrian			    bus_size_t, u_int64_t);
226234862Sadrian
227234862Sadrian	/* write multiple stream */
228234862Sadrian	void		(*bs_wm_1_s) (void *, bus_space_handle_t,
229234862Sadrian			    bus_size_t, const u_int8_t *, bus_size_t);
230234862Sadrian	void		(*bs_wm_2_s) (void *, bus_space_handle_t,
231234862Sadrian			    bus_size_t, const u_int16_t *, bus_size_t);
232234862Sadrian	void		(*bs_wm_4_s) (void *, bus_space_handle_t,
233234862Sadrian			    bus_size_t, const u_int32_t *, bus_size_t);
234234862Sadrian	void		(*bs_wm_8_s) (void *, bus_space_handle_t,
235234862Sadrian			    bus_size_t, const u_int64_t *, bus_size_t);
236234862Sadrian
237234862Sadrian	/* write region stream */
238234862Sadrian	void		(*bs_wr_1_s) (void *, bus_space_handle_t,
239234862Sadrian			    bus_size_t, const u_int8_t *, bus_size_t);
240234862Sadrian	void		(*bs_wr_2_s) (void *, bus_space_handle_t,
241234862Sadrian			    bus_size_t, const u_int16_t *, bus_size_t);
242234862Sadrian	void		(*bs_wr_4_s) (void *, bus_space_handle_t,
243234862Sadrian			    bus_size_t, const u_int32_t *, bus_size_t);
244234862Sadrian	void		(*bs_wr_8_s) (void *, bus_space_handle_t,
245199038Sgonzo			    bus_size_t, const u_int64_t *, bus_size_t);
246199038Sgonzo};
247206400Sgonzo
248199038Sgonzo
249192179Sgonzo/*
250232627Sray * Utility macros; INTERNAL USE ONLY.
251285121Sadrian */
252285121Sadrian#define	__bs_c(a,b)		__CONCAT(a,b)
253188808Sgonzo#define	__bs_opname(op,size)	__bs_c(__bs_c(__bs_c(bs_,op),_),size)
254188808Sgonzo
255188808Sgonzo#define	__bs_rs(sz, t, h, o)						\
256188808Sgonzo	(*(t)->__bs_opname(r,sz))((t)->bs_cookie, h, o)
257285121Sadrian#define	__bs_ws(sz, t, h, o, v)						\
258285121Sadrian	(*(t)->__bs_opname(w,sz))((t)->bs_cookie, h, o, v)
259285121Sadrian#define	__bs_nonsingle(type, sz, t, h, o, a, c)				\
260285121Sadrian	(*(t)->__bs_opname(type,sz))((t)->bs_cookie, h, o, a, c)
261285121Sadrian#define	__bs_set(type, sz, t, h, o, v, c)				\
262285121Sadrian	(*(t)->__bs_opname(type,sz))((t)->bs_cookie, h, o, v, c)
263285121Sadrian#define	__bs_copy(sz, t, h1, o1, h2, o2, cnt)				\
264285121Sadrian	(*(t)->__bs_opname(c,sz))((t)->bs_cookie, h1, o1, h2, o2, cnt)
265285121Sadrian
266285121Sadrian#define	__bs_opname_s(op,size)	__bs_c(__bs_c(__bs_c(__bs_c(bs_,op),_),size),_s)
267285121Sadrian#define	__bs_rs_s(sz, t, h, o)						\
268285121Sadrian	(*(t)->__bs_opname_s(r,sz))((t)->bs_cookie, h, o)
269285121Sadrian#define	__bs_ws_s(sz, t, h, o, v)					\
270188808Sgonzo	(*(t)->__bs_opname_s(w,sz))((t)->bs_cookie, h, o, v)
271188808Sgonzo#define	__bs_nonsingle_s(type, sz, t, h, o, a, c)			\
272232627Sray	(*(t)->__bs_opname_s(type,sz))((t)->bs_cookie, h, o, a, c)
273188808Sgonzo
274188808Sgonzo
275188808Sgonzo/*
276188808Sgonzo * Mapping and unmapping operations.
277257338Snwhitehorn */
278188808Sgonzo#define	bus_space_map(t, a, s, c, hp)					\
279188808Sgonzo	(*(t)->bs_map)((t)->bs_cookie, (a), (s), (c), (hp))
280290090Sadrian#define	bus_space_unmap(t, h, s)					\
281209802Sadrian	(*(t)->bs_unmap)((t)->bs_cookie, (h), (s))
282290090Sadrian#define	bus_space_subregion(t, h, o, s, hp)				\
283290090Sadrian	(*(t)->bs_subregion)((t)->bs_cookie, (h), (o), (s), (hp))
284290090Sadrian
285290090Sadrian
286290090Sadrian/*
287290090Sadrian * Allocation and deallocation operations.
288290090Sadrian */
289290090Sadrian#define	bus_space_alloc(t, rs, re, s, a, b, c, ap, hp)			\
290290090Sadrian	(*(t)->bs_alloc)((t)->bs_cookie, (rs), (re), (s), (a), (b),	\
291290090Sadrian	    (c), (ap), (hp))
292290090Sadrian#define	bus_space_free(t, h, s)						\
293290090Sadrian	(*(t)->bs_free)((t)->bs_cookie, (h), (s))
294290090Sadrian
295290090Sadrian/*
296290090Sadrian * Bus barrier operations.
297290090Sadrian */
298290090Sadrian#define	bus_space_barrier(t, h, o, l, f)				\
299290090Sadrian	(*(t)->bs_barrier)((t)->bs_cookie, (h), (o), (l), (f))
300290090Sadrian
301290090Sadrian#define	BUS_SPACE_BARRIER_READ	0x01
302290090Sadrian#define	BUS_SPACE_BARRIER_WRITE	0x02
303209802Sadrian
304209802Sadrian/*
305209802Sadrian * Bus read (single) operations.
306209802Sadrian */
307209802Sadrian#define	bus_space_read_1(t, h, o)	__bs_rs(1,(t),(h),(o))
308209802Sadrian#define	bus_space_read_2(t, h, o)	__bs_rs(2,(t),(h),(o))
309220355Sadrian#define	bus_space_read_4(t, h, o)	__bs_rs(4,(t),(h),(o))
310209802Sadrian#define	bus_space_read_8(t, h, o)	__bs_rs(8,(t),(h),(o))
311209802Sadrian
312209802Sadrian#define bus_space_read_stream_1(t, h, o)        __bs_rs_s(1,(t), (h), (o))
313290090Sadrian#define bus_space_read_stream_2(t, h, o)        __bs_rs_s(2,(t), (h), (o))
314220355Sadrian#define bus_space_read_stream_4(t, h, o)        __bs_rs_s(4,(t), (h), (o))
315209809Sadrian#define	bus_space_read_stream_8(t, h, o)	__bs_rs_s(8,8,(t),(h),(o))
316209809Sadrian
317209809Sadrian/*
318209809Sadrian * Bus read multiple operations.
319209809Sadrian */
320209809Sadrian#define	bus_space_read_multi_1(t, h, o, a, c)				\
321232628Sray	__bs_nonsingle(rm,1,(t),(h),(o),(a),(c))
322232628Sray#define	bus_space_read_multi_2(t, h, o, a, c)				\
323220354Sadrian	__bs_nonsingle(rm,2,(t),(h),(o),(a),(c))
324289476Sadrian#define	bus_space_read_multi_4(t, h, o, a, c)				\
325289476Sadrian	__bs_nonsingle(rm,4,(t),(h),(o),(a),(c))
326289476Sadrian#define	bus_space_read_multi_8(t, h, o, a, c)				\
327289476Sadrian	__bs_nonsingle(rm,8,(t),(h),(o),(a),(c))
328289476Sadrian
329289476Sadrian#define	bus_space_read_multi_stream_1(t, h, o, a, c)			\
330289476Sadrian	__bs_nonsingle_s(rm,1,(t),(h),(o),(a),(c))
331289476Sadrian#define	bus_space_read_multi_stream_2(t, h, o, a, c)			\
332289476Sadrian	__bs_nonsingle_s(rm,2,(t),(h),(o),(a),(c))
333289476Sadrian#define	bus_space_read_multi_stream_4(t, h, o, a, c)			\
334289476Sadrian	__bs_nonsingle_s(rm,4,(t),(h),(o),(a),(c))
335289476Sadrian#define	bus_space_read_multi_stream_8(t, h, o, a, c)			\
336289476Sadrian	__bs_nonsingle_s(rm,8,(t),(h),(o),(a),(c))
337289476Sadrian
338289476Sadrian
339289476Sadrian/*
340289476Sadrian * Bus read region operations.
341289476Sadrian */
342289476Sadrian#define	bus_space_read_region_1(t, h, o, a, c)				\
343289476Sadrian	__bs_nonsingle(rr,1,(t),(h),(o),(a),(c))
344289476Sadrian#define	bus_space_read_region_2(t, h, o, a, c)				\
345289476Sadrian	__bs_nonsingle(rr,2,(t),(h),(o),(a),(c))
346289476Sadrian#define	bus_space_read_region_4(t, h, o, a, c)				\
347220355Sadrian	__bs_nonsingle(rr,4,(t),(h),(o),(a),(c))
348220355Sadrian#define	bus_space_read_region_8(t, h, o, a, c)				\
349220355Sadrian	__bs_nonsingle(rr,8,(t),(h),(o),(a),(c))
350220355Sadrian
351220355Sadrian#define	bus_space_read_region_stream_1(t, h, o, a, c)			\
352220355Sadrian	__bs_nonsingle_s(rr,1,(t),(h),(o),(a),(c))
353220355Sadrian#define	bus_space_read_region_stream_2(t, h, o, a, c)			\
354220355Sadrian	__bs_nonsingle_s(rr,2,(t),(h),(o),(a),(c))
355209802Sadrian#define	bus_space_read_region_stream_4(t, h, o, a, c)			\
356209802Sadrian	__bs_nonsingle_s(rr,4,(t),(h),(o),(a),(c))
357234862Sadrian#define	bus_space_read_region_stream_8(t, h, o, a, c)			\
358234862Sadrian	__bs_nonsingle_s(rr,8,(t),(h),(o),(a),(c))
359234862Sadrian
360234862Sadrian
361256575Sadrian/*
362234862Sadrian * Bus write (single) operations.
363279791Sadrian */
364279791Sadrian#define	bus_space_write_1(t, h, o, v)	__bs_ws(1,(t),(h),(o),(v))
365234862Sadrian#define	bus_space_write_2(t, h, o, v)	__bs_ws(2,(t),(h),(o),(v))
366234862Sadrian#define	bus_space_write_4(t, h, o, v)	__bs_ws(4,(t),(h),(o),(v))
367234862Sadrian#define	bus_space_write_8(t, h, o, v)	__bs_ws(8,(t),(h),(o),(v))
368234862Sadrian
369234862Sadrian#define	bus_space_write_stream_1(t, h, o, v)	__bs_ws_s(1,(t),(h),(o),(v))
370256575Sadrian#define	bus_space_write_stream_2(t, h, o, v)	__bs_ws_s(2,(t),(h),(o),(v))
371256575Sadrian#define	bus_space_write_stream_4(t, h, o, v)	__bs_ws_s(4,(t),(h),(o),(v))
372256575Sadrian#define	bus_space_write_stream_8(t, h, o, v)	__bs_ws_s(8,(t),(h),(o),(v))
373256575Sadrian
374256575Sadrian
375256575Sadrian/*
376256575Sadrian * Bus write multiple operations.
377256575Sadrian */
378256575Sadrian#define	bus_space_write_multi_1(t, h, o, a, c)				\
379256575Sadrian	__bs_nonsingle(wm,1,(t),(h),(o),(a),(c))
380256575Sadrian#define	bus_space_write_multi_2(t, h, o, a, c)				\
381256575Sadrian	__bs_nonsingle(wm,2,(t),(h),(o),(a),(c))
382279510Sadrian#define	bus_space_write_multi_4(t, h, o, a, c)				\
383256575Sadrian	__bs_nonsingle(wm,4,(t),(h),(o),(a),(c))
384256575Sadrian#define	bus_space_write_multi_8(t, h, o, a, c)				\
385256575Sadrian	__bs_nonsingle(wm,8,(t),(h),(o),(a),(c))
386256575Sadrian
387256575Sadrian#define	bus_space_write_multi_stream_1(t, h, o, a, c)			\
388256575Sadrian	__bs_nonsingle_s(wm,1,(t),(h),(o),(a),(c))
389256575Sadrian#define	bus_space_write_multi_stream_2(t, h, o, a, c)			\
390256575Sadrian	__bs_nonsingle_s(wm,2,(t),(h),(o),(a),(c))
391256575Sadrian#define	bus_space_write_multi_stream_4(t, h, o, a, c)			\
392256575Sadrian	__bs_nonsingle_s(wm,4,(t),(h),(o),(a),(c))
393279510Sadrian#define	bus_space_write_multi_stream_8(t, h, o, a, c)			\
394279510Sadrian	__bs_nonsingle_s(wm,8,(t),(h),(o),(a),(c))
395279510Sadrian
396279510Sadrian
397279510Sadrian/*
398279510Sadrian * Bus write region operations.
399279510Sadrian */
400279510Sadrian#define	bus_space_write_region_1(t, h, o, a, c)				\
401279510Sadrian	__bs_nonsingle(wr,1,(t),(h),(o),(a),(c))
402290910Sadrian#define	bus_space_write_region_2(t, h, o, a, c)				\
403290910Sadrian	__bs_nonsingle(wr,2,(t),(h),(o),(a),(c))
404290910Sadrian#define	bus_space_write_region_4(t, h, o, a, c)				\
405290910Sadrian	__bs_nonsingle(wr,4,(t),(h),(o),(a),(c))
406290910Sadrian#define	bus_space_write_region_8(t, h, o, a, c)				\
407290910Sadrian	__bs_nonsingle(wr,8,(t),(h),(o),(a),(c))
408290910Sadrian
409290910Sadrian#define	bus_space_write_region_stream_1(t, h, o, a, c)			\
410290910Sadrian	__bs_nonsingle_s(wr,1,(t),(h),(o),(a),(c))
411290910Sadrian#define	bus_space_write_region_stream_2(t, h, o, a, c)			\
412256575Sadrian	__bs_nonsingle_s(wr,2,(t),(h),(o),(a),(c))
413234862Sadrian#define	bus_space_write_region_stream_4(t, h, o, a, c)			\
414256575Sadrian	__bs_nonsingle_s(wr,4,(t),(h),(o),(a),(c))
415234862Sadrian#define	bus_space_write_region_stream_8(t, h, o, a, c)			\
416234862Sadrian	__bs_nonsingle_s(wr,8,(t),(h),(o),(a),(c))
417234862Sadrian
418234862Sadrian
419234862Sadrian/*
420234862Sadrian * Set multiple operations.
421234862Sadrian */
422234862Sadrian#define	bus_space_set_multi_1(t, h, o, v, c)				\
423234862Sadrian	__bs_set(sm,1,(t),(h),(o),(v),(c))
424234862Sadrian#define	bus_space_set_multi_2(t, h, o, v, c)				\
425234862Sadrian	__bs_set(sm,2,(t),(h),(o),(v),(c))
426234862Sadrian#define	bus_space_set_multi_4(t, h, o, v, c)				\
427234862Sadrian	__bs_set(sm,4,(t),(h),(o),(v),(c))
428256575Sadrian#define	bus_space_set_multi_8(t, h, o, v, c)				\
429256648Sadrian	__bs_set(sm,8,(t),(h),(o),(v),(c))
430256648Sadrian
431256648Sadrian
432256648Sadrian/*
433256648Sadrian * Set region operations.
434256648Sadrian */
435256648Sadrian#define	bus_space_set_region_1(t, h, o, v, c)				\
436256648Sadrian	__bs_set(sr,1,(t),(h),(o),(v),(c))
437256648Sadrian#define	bus_space_set_region_2(t, h, o, v, c)				\
438256648Sadrian	__bs_set(sr,2,(t),(h),(o),(v),(c))
439256648Sadrian#define	bus_space_set_region_4(t, h, o, v, c)				\
440256648Sadrian	__bs_set(sr,4,(t),(h),(o),(v),(c))
441256648Sadrian#define	bus_space_set_region_8(t, h, o, v, c)				\
442256648Sadrian	__bs_set(sr,8,(t),(h),(o),(v),(c))
443256648Sadrian
444256648Sadrian
445256648Sadrian/*
446256648Sadrian * Copy operations.
447256648Sadrian */
448256648Sadrian#define	bus_space_copy_region_1(t, h1, o1, h2, o2, c)				\
449256648Sadrian	__bs_copy(1, t, h1, o1, h2, o2, c)
450256648Sadrian#define	bus_space_copy_region_2(t, h1, o1, h2, o2, c)				\
451256648Sadrian	__bs_copy(2, t, h1, o1, h2, o2, c)
452256648Sadrian#define	bus_space_copy_region_4(t, h1, o1, h2, o2, c)				\
453256648Sadrian	__bs_copy(4, t, h1, o1, h2, o2, c)
454256648Sadrian#define	bus_space_copy_region_8(t, h1, o1, h2, o2, c)				\
455256648Sadrian	__bs_copy(8, t, h1, o1, h2, o2, c)
456256648Sadrian
457256648Sadrian/*
458256648Sadrian * Macros to provide prototypes for all the functions used in the
459256648Sadrian * bus_space structure
460256648Sadrian */
461256648Sadrian
462256648Sadrian#define bs_map_proto(f)							\
463256648Sadrianint	__bs_c(f,_bs_map) (void *t, bus_addr_t addr,		\
464256648Sadrian	    bus_size_t size, int cacheable, bus_space_handle_t *bshp);
465256648Sadrian
466256648Sadrian#define bs_unmap_proto(f)						\
467256648Sadrianvoid	__bs_c(f,_bs_unmap) (void *t, bus_space_handle_t bsh,		\
468256648Sadrian	    bus_size_t size);
469256648Sadrian
470256648Sadrian#define bs_subregion_proto(f)						\
471256648Sadrianint	__bs_c(f,_bs_subregion) (void *t, bus_space_handle_t bsh,	\
472256648Sadrian	    bus_size_t offset, bus_size_t size, 			\
473256648Sadrian	    bus_space_handle_t *nbshp);
474256648Sadrian
475256648Sadrian#define bs_alloc_proto(f)						\
476256648Sadrianint	__bs_c(f,_bs_alloc) (void *t, bus_addr_t rstart,		\
477256648Sadrian	    bus_addr_t rend, bus_size_t size, bus_size_t align,		\
478256648Sadrian	    bus_size_t boundary, int cacheable, bus_addr_t *addrp,	\
479256648Sadrian	    bus_space_handle_t *bshp);
480256648Sadrian
481256648Sadrian#define bs_free_proto(f)						\
482256648Sadrianvoid	__bs_c(f,_bs_free) (void *t, bus_space_handle_t bsh,	\
483290910Sadrian	    bus_size_t size);
484290910Sadrian
485279510Sadrian#define bs_mmap_proto(f)						\
486279510Sadrianint	__bs_c(f,_bs_mmap) (struct cdev *, vm_offset_t, vm_paddr_t *, int);
487256648Sadrian
488256648Sadrian#define bs_barrier_proto(f)						\
489256648Sadrianvoid	__bs_c(f,_bs_barrier) (void *t, bus_space_handle_t bsh,	\
490256648Sadrian	    bus_size_t offset, bus_size_t len, int flags);
491256648Sadrian
492256648Sadrian#define	bs_r_1_proto(f)							\
493256648Sadrianu_int8_t	__bs_c(f,_bs_r_1) (void *t, bus_space_handle_t bsh,	\
494256648Sadrian		    bus_size_t offset);
495256648Sadrian
496256648Sadrian#define	bs_r_2_proto(f)							\
497256648Sadrianu_int16_t	__bs_c(f,_bs_r_2) (void *t, bus_space_handle_t bsh,	\
498256648Sadrian		    bus_size_t offset);
499256648Sadrian
500256648Sadrian#define	bs_r_4_proto(f)							\
501256648Sadrianu_int32_t	__bs_c(f,_bs_r_4) (void *t, bus_space_handle_t bsh,	\
502256648Sadrian		    bus_size_t offset);
503256648Sadrian
504256648Sadrian#define	bs_r_8_proto(f)							\
505256648Sadrianu_int64_t	__bs_c(f,_bs_r_8) (void *t, bus_space_handle_t bsh,	\
506256648Sadrian		    bus_size_t offset);
507256648Sadrian
508256648Sadrian#define	bs_r_1_s_proto(f)						\
509256648Sadrianu_int8_t	__bs_c(f,_bs_r_1_s) (void *t, bus_space_handle_t bsh,	\
510256648Sadrian		    bus_size_t offset);
511256648Sadrian
512256648Sadrian#define	bs_r_2_s_proto(f)						\
513256648Sadrianu_int16_t	__bs_c(f,_bs_r_2_s) (void *t, bus_space_handle_t bsh,	\
514256648Sadrian		    bus_size_t offset);
515256648Sadrian
516256648Sadrian#define	bs_r_4_s_proto(f)						\
517256648Sadrianu_int32_t	__bs_c(f,_bs_r_4_s) (void *t, bus_space_handle_t bsh,	\
518256648Sadrian		    bus_size_t offset);
519256648Sadrian
520256648Sadrian#define	bs_w_1_proto(f)							\
521256648Sadrianvoid	__bs_c(f,_bs_w_1) (void *t, bus_space_handle_t bsh,		\
522256648Sadrian	    bus_size_t offset, u_int8_t value);
523256648Sadrian
524256575Sadrian#define	bs_w_2_proto(f)							\
525256575Sadrianvoid	__bs_c(f,_bs_w_2) (void *t, bus_space_handle_t bsh,		\
526256575Sadrian	    bus_size_t offset, u_int16_t value);
527256648Sadrian
528256575Sadrian#define	bs_w_4_proto(f)							\
529256575Sadrianvoid	__bs_c(f,_bs_w_4) (void *t, bus_space_handle_t bsh,		\
530256575Sadrian	    bus_size_t offset, u_int32_t value);
531256575Sadrian
532256575Sadrian#define	bs_w_8_proto(f)							\
533256575Sadrianvoid	__bs_c(f,_bs_w_8) (void *t, bus_space_handle_t bsh,		\
534256575Sadrian	    bus_size_t offset, u_int64_t value);
535256575Sadrian
536256648Sadrian#define	bs_w_1_s_proto(f)						\
537256575Sadrianvoid	__bs_c(f,_bs_w_1_s) (void *t, bus_space_handle_t bsh,		\
538256648Sadrian	    bus_size_t offset, u_int8_t value);
539256648Sadrian
540256648Sadrian#define	bs_w_2_s_proto(f)						\
541256648Sadrianvoid	__bs_c(f,_bs_w_2_s) (void *t, bus_space_handle_t bsh,		\
542256648Sadrian	    bus_size_t offset, u_int16_t value);
543256648Sadrian
544256648Sadrian#define	bs_w_4_s_proto(f)						\
545256648Sadrianvoid	__bs_c(f,_bs_w_4_s) (void *t, bus_space_handle_t bsh,		\
546256648Sadrian	    bus_size_t offset, u_int32_t value);
547256648Sadrian
548256648Sadrian#define	bs_rm_1_proto(f)						\
549256648Sadrianvoid	__bs_c(f,_bs_rm_1) (void *t, bus_space_handle_t bsh,	\
550256648Sadrian	    bus_size_t offset, u_int8_t *addr, bus_size_t count);
551256648Sadrian
552256648Sadrian#define	bs_rm_2_proto(f)						\
553256648Sadrianvoid	__bs_c(f,_bs_rm_2) (void *t, bus_space_handle_t bsh,	\
554256648Sadrian	    bus_size_t offset, u_int16_t *addr, bus_size_t count);
555256648Sadrian
556256648Sadrian#define	bs_rm_4_proto(f)						\
557256648Sadrianvoid	__bs_c(f,_bs_rm_4) (void *t, bus_space_handle_t bsh,	\
558256648Sadrian	    bus_size_t offset, u_int32_t *addr, bus_size_t count);
559256648Sadrian
560256648Sadrian#define	bs_rm_8_proto(f)						\
561256648Sadrianvoid	__bs_c(f,_bs_rm_8) (void *t, bus_space_handle_t bsh,	\
562256648Sadrian	    bus_size_t offset, u_int64_t *addr, bus_size_t count);
563256648Sadrian
564256648Sadrian#define	bs_wm_1_proto(f)						\
565256648Sadrianvoid	__bs_c(f,_bs_wm_1) (void *t, bus_space_handle_t bsh,	\
566256648Sadrian	    bus_size_t offset, const u_int8_t *addr, bus_size_t count);
567256648Sadrian
568256648Sadrian#define	bs_wm_2_proto(f)						\
569256648Sadrianvoid	__bs_c(f,_bs_wm_2) (void *t, bus_space_handle_t bsh,	\
570256648Sadrian	    bus_size_t offset, const u_int16_t *addr, bus_size_t count);
571256648Sadrian
572256575Sadrian#define	bs_wm_4_proto(f)						\
573256575Sadrianvoid	__bs_c(f,_bs_wm_4) (void *t, bus_space_handle_t bsh,	\
574256575Sadrian	    bus_size_t offset, const u_int32_t *addr, bus_size_t count);
575256575Sadrian
576290910Sadrian#define	bs_wm_8_proto(f)						\
577290910Sadrianvoid	__bs_c(f,_bs_wm_8) (void *t, bus_space_handle_t bsh,	\
578279510Sadrian	    bus_size_t offset, const u_int64_t *addr, bus_size_t count);
579279510Sadrian
580256648Sadrian#define	bs_rr_1_proto(f)						\
581256648Sadrianvoid	__bs_c(f, _bs_rr_1) (void *t, bus_space_handle_t bsh,	\
582256575Sadrian	    bus_size_t offset, u_int8_t *addr, bus_size_t count);
583256575Sadrian
584256575Sadrian#define	bs_rr_2_proto(f)						\
585256575Sadrianvoid	__bs_c(f, _bs_rr_2) (void *t, bus_space_handle_t bsh,	\
586256575Sadrian	    bus_size_t offset, u_int16_t *addr, bus_size_t count);
587234862Sadrian
588234862Sadrian#define	bs_rr_4_proto(f)						\
589234862Sadrianvoid	__bs_c(f, _bs_rr_4) (void *t, bus_space_handle_t bsh,	\
590256575Sadrian	    bus_size_t offset, u_int32_t *addr, bus_size_t count);
591234862Sadrian
592256575Sadrian#define	bs_rr_8_proto(f)						\
593256575Sadrianvoid	__bs_c(f, _bs_rr_8) (void *t, bus_space_handle_t bsh,	\
594256575Sadrian	    bus_size_t offset, u_int64_t *addr, bus_size_t count);
595256575Sadrian
596256575Sadrian#define	bs_wr_1_proto(f)						\
597256575Sadrianvoid	__bs_c(f, _bs_wr_1) (void *t, bus_space_handle_t bsh,	\
598256575Sadrian	    bus_size_t offset, const u_int8_t *addr, bus_size_t count);
599256575Sadrian
600256575Sadrian#define	bs_wr_2_proto(f)						\
601234862Sadrianvoid	__bs_c(f, _bs_wr_2) (void *t, bus_space_handle_t bsh,	\
602256575Sadrian	    bus_size_t offset, const u_int16_t *addr, bus_size_t count);
603234862Sadrian
604234862Sadrian#define	bs_wr_4_proto(f)						\
605234862Sadrianvoid	__bs_c(f, _bs_wr_4) (void *t, bus_space_handle_t bsh,	\
606234919Sadrian	    bus_size_t offset, const u_int32_t *addr, bus_size_t count);
607234919Sadrian
608234919Sadrian#define	bs_wr_8_proto(f)						\
609234919Sadrianvoid	__bs_c(f, _bs_wr_8) (void *t, bus_space_handle_t bsh,	\
610234919Sadrian	    bus_size_t offset, const u_int64_t *addr, bus_size_t count);
611234919Sadrian
612234919Sadrian#define	bs_sm_1_proto(f)						\
613234919Sadrianvoid	__bs_c(f,_bs_sm_1) (void *t, bus_space_handle_t bsh,	\
614234919Sadrian	    bus_size_t offset, u_int8_t value, bus_size_t count);
615234919Sadrian
616234919Sadrian#define	bs_sm_2_proto(f)						\
617234919Sadrianvoid	__bs_c(f,_bs_sm_2) (void *t, bus_space_handle_t bsh,	\
618234919Sadrian	    bus_size_t offset, u_int16_t value, bus_size_t count);
619234919Sadrian
620234919Sadrian#define	bs_sm_4_proto(f)						\
621234919Sadrianvoid	__bs_c(f,_bs_sm_4) (void *t, bus_space_handle_t bsh,	\
622234919Sadrian	    bus_size_t offset, u_int32_t value, bus_size_t count);
623234919Sadrian
624234919Sadrian#define	bs_sm_8_proto(f)						\
625234919Sadrianvoid	__bs_c(f,_bs_sm_8) (void *t, bus_space_handle_t bsh,	\
626234919Sadrian	    bus_size_t offset, u_int64_t value, bus_size_t count);
627234919Sadrian
628234919Sadrian#define	bs_sr_1_proto(f)						\
629234919Sadrianvoid	__bs_c(f,_bs_sr_1) (void *t, bus_space_handle_t bsh,	\
630234919Sadrian	    bus_size_t offset, u_int8_t value, bus_size_t count);
631234919Sadrian
632234919Sadrian#define	bs_sr_2_proto(f)						\
633234919Sadrianvoid	__bs_c(f,_bs_sr_2) (void *t, bus_space_handle_t bsh,	\
634188808Sgonzo	    bus_size_t offset, u_int16_t value, bus_size_t count);
635188808Sgonzo
636188808Sgonzo#define	bs_sr_4_proto(f)						\
637188808Sgonzovoid	__bs_c(f,_bs_sr_4) (void *t, bus_space_handle_t bsh,	\
638188808Sgonzo	    bus_size_t offset, u_int32_t value, bus_size_t count);
639280798Sadrian
640199234Sgonzo#define	bs_sr_8_proto(f)						\
641220260Sadrianvoid	__bs_c(f,_bs_sr_8) (void *t, bus_space_handle_t bsh,	\
642234910Sadrian	    bus_size_t offset, u_int64_t value, bus_size_t count);
643254690Ssbruno
644263224Sadrian#define	bs_c_1_proto(f)							\
645280798Sadrianvoid	__bs_c(f,_bs_c_1) (void *t, bus_space_handle_t bsh1,	\
646280798Sadrian	    bus_size_t offset1, bus_space_handle_t bsh2,		\
647280798Sadrian	    bus_size_t offset2, bus_size_t count);
648280798Sadrian
649188808Sgonzo#define	bs_c_2_proto(f)							\
650188808Sgonzovoid	__bs_c(f,_bs_c_2) (void *t, bus_space_handle_t bsh1,	\
651188808Sgonzo	    bus_size_t offset1, bus_space_handle_t bsh2,		\
652188808Sgonzo	    bus_size_t offset2, bus_size_t count);
653188808Sgonzo
654220260Sadrian#define	bs_c_4_proto(f)							\
655280798Sadrianvoid	__bs_c(f,_bs_c_4) (void *t, bus_space_handle_t bsh1,	\
656280798Sadrian	    bus_size_t offset1, bus_space_handle_t bsh2,		\
657280798Sadrian	    bus_size_t offset2, bus_size_t count);
658280798Sadrian
659280798Sadrian#define	bs_c_8_proto(f)							\
660280798Sadrianvoid	__bs_c(f,_bs_c_8) (void *t, bus_space_handle_t bsh1,	\
661280798Sadrian	    bus_size_t offset1, bus_space_handle_t bsh2,		\
662280798Sadrian	    bus_size_t offset2, bus_size_t count);
663280798Sadrian
664280798Sadrian#define bs_protos(f)		\
665280798Sadrianbs_map_proto(f);		\
666280798Sadrianbs_unmap_proto(f);		\
667280798Sadrianbs_subregion_proto(f);		\
668280798Sadrianbs_alloc_proto(f);		\
669280798Sadrianbs_free_proto(f);		\
670280798Sadrianbs_mmap_proto(f);		\
671280798Sadrianbs_barrier_proto(f);		\
672280798Sadrianbs_r_1_proto(f);		\
673280798Sadrianbs_r_2_proto(f);		\
674280798Sadrianbs_r_4_proto(f);		\
675280798Sadrianbs_r_8_proto(f);		\
676280798Sadrianbs_r_1_s_proto(f);		\
677280798Sadrianbs_r_2_s_proto(f);		\
678280798Sadrianbs_r_4_s_proto(f);		\
679280798Sadrianbs_w_1_proto(f);		\
680280798Sadrianbs_w_2_proto(f);		\
681280798Sadrianbs_w_4_proto(f);		\
682280798Sadrianbs_w_8_proto(f);		\
683280798Sadrianbs_w_1_s_proto(f);		\
684280798Sadrianbs_w_2_s_proto(f);		\
685280798Sadrianbs_w_4_s_proto(f);		\
686280798Sadrianbs_rm_1_proto(f);		\
687280798Sadrianbs_rm_2_proto(f);		\
688280798Sadrianbs_rm_4_proto(f);		\
689280798Sadrianbs_rm_8_proto(f);		\
690289476Sadrianbs_wm_1_proto(f);		\
691289476Sadrianbs_wm_2_proto(f);		\
692289476Sadrianbs_wm_4_proto(f);		\
693289744Sadrianbs_wm_8_proto(f);		\
694289744Sadrianbs_rr_1_proto(f);		\
695289898Sadrianbs_rr_2_proto(f);		\
696289898Sadrianbs_rr_4_proto(f);		\
697289898Sadrianbs_rr_8_proto(f);		\
698290910Sadrianbs_wr_1_proto(f);		\
699290910Sadrianbs_wr_2_proto(f);		\
700289476Sadrianbs_wr_4_proto(f);		\
701289476Sadrianbs_wr_8_proto(f);		\
702289476Sadrianbs_sm_1_proto(f);		\
703289476Sadrianbs_sm_2_proto(f);		\
704289476Sadrianbs_sm_4_proto(f);		\
705289476Sadrianbs_sm_8_proto(f);		\
706289476Sadrianbs_sr_1_proto(f);		\
707289476Sadrianbs_sr_2_proto(f);		\
708289476Sadrianbs_sr_4_proto(f);		\
709289476Sadrianbs_sr_8_proto(f);		\
710289476Sadrianbs_c_1_proto(f);		\
711289476Sadrianbs_c_2_proto(f);		\
712289476Sadrianbs_c_4_proto(f);		\
713220260Sadrianbs_c_8_proto(f);
714220260Sadrian
715220260Sadrian#define BUS_SPACE_ALIGNED_POINTER(p, t) ALIGNED_POINTER(p, t)
716220260Sadrian
717220260Sadrian#define BUS_SPACE_MAXADDR_24BIT	0xFFFFFF
718220260Sadrian#define BUS_SPACE_MAXADDR_32BIT 0xFFFFFFFF
719220260Sadrian#define BUS_SPACE_MAXADDR 	0xFFFFFFFF
720254690Ssbruno#define BUS_SPACE_MAXSIZE_24BIT	0xFFFFFF
721254690Ssbruno#define BUS_SPACE_MAXSIZE_32BIT	0xFFFFFFFF
722254690Ssbruno#define BUS_SPACE_MAXSIZE 	0xFFFFFFFF
723254690Ssbruno
724254690Ssbruno#define BUS_SPACE_UNRESTRICTED	(~0)
725220260Sadrian
726280798Sadrian#include <machine/bus_dma.h>
727280798Sadrian
728263224Sadrian#endif /* _MACHINE_BUS_H_ */
729220260Sadrian