From 86b5be6e94187e7fa009ab97c775a47c83c11874 Mon Sep 17 00:00:00 2001 From: dyoung Date: Tue, 19 Jul 2011 15:52:29 +0000 Subject: [PATCH] Change to throughout. Split bus.h -> bus_{defs,funcs}.h. Mark dreamcast/bus.h obsolete. --- distrib/sets/lists/comp/md.dreamcast | 4 +- sys/arch/dreamcast/dev/g2/aica.c | 6 +- sys/arch/dreamcast/dev/g2/g2bus_bus_mem.c | 6 +- sys/arch/dreamcast/dev/g2/g2busvar.h | 4 +- sys/arch/dreamcast/dev/g2/g2rtc.c | 6 +- sys/arch/dreamcast/dev/g2/gapspci.c | 6 +- sys/arch/dreamcast/dev/g2/gapspci_dma.c | 6 +- sys/arch/dreamcast/dev/g2/gapspci_pci.c | 6 +- sys/arch/dreamcast/dev/g2/if_mbe_g2.c | 6 +- sys/arch/dreamcast/dev/maple/maple.c | 6 +- sys/arch/dreamcast/dev/maple/mkbd.c | 6 +- sys/arch/dreamcast/dev/pvr.c | 6 +- sys/arch/dreamcast/include/Makefile | 4 +- .../dreamcast/include/{bus.h => bus_defs.h} | 253 +------------- sys/arch/dreamcast/include/bus_funcs.h | 309 ++++++++++++++++++ 15 files changed, 349 insertions(+), 285 deletions(-) rename sys/arch/dreamcast/include/{bus.h => bus_defs.h} (56%) create mode 100644 sys/arch/dreamcast/include/bus_funcs.h diff --git a/distrib/sets/lists/comp/md.dreamcast b/distrib/sets/lists/comp/md.dreamcast index c932390a1f83..f5593ad252c8 100644 --- a/distrib/sets/lists/comp/md.dreamcast +++ b/distrib/sets/lists/comp/md.dreamcast @@ -1,11 +1,11 @@ -# $NetBSD: md.dreamcast,v 1.16 2011/07/18 17:42:34 dyoung Exp $ +# $NetBSD: md.dreamcast,v 1.17 2011/07/19 15:52:29 dyoung Exp $ ./usr/include/dreamcast comp-c-include ./usr/include/dreamcast/_G_config.h comp-obsolete obsolete ./usr/include/dreamcast/ansi.h comp-c-include ./usr/include/dreamcast/aout_machdep.h comp-c-include ./usr/include/dreamcast/asm.h comp-c-include ./usr/include/dreamcast/bswap.h comp-c-include -./usr/include/dreamcast/bus.h comp-c-include +./usr/include/dreamcast/bus.h comp-obsolete obsolete ./usr/include/dreamcast/cdefs.h comp-c-include ./usr/include/dreamcast/coff_machdep.h comp-c-include ./usr/include/dreamcast/conf.h comp-obsolete obsolete diff --git a/sys/arch/dreamcast/dev/g2/aica.c b/sys/arch/dreamcast/dev/g2/aica.c index 4cb8862acf86..57bf77864c22 100644 --- a/sys/arch/dreamcast/dev/g2/aica.c +++ b/sys/arch/dreamcast/dev/g2/aica.c @@ -1,4 +1,4 @@ -/* $NetBSD: aica.c,v 1.20 2010/11/21 16:11:32 tsutsui Exp $ */ +/* $NetBSD: aica.c,v 1.21 2011/07/19 15:52:29 dyoung Exp $ */ /* * Copyright (c) 2003 SHIMIZU Ryo @@ -29,7 +29,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: aica.c,v 1.20 2010/11/21 16:11:32 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: aica.c,v 1.21 2011/07/19 15:52:29 dyoung Exp $"); #include #include @@ -37,12 +37,12 @@ __KERNEL_RCSID(0, "$NetBSD: aica.c,v 1.20 2010/11/21 16:11:32 tsutsui Exp $"); #include #include #include +#include #include #include #include -#include #include #include diff --git a/sys/arch/dreamcast/dev/g2/g2bus_bus_mem.c b/sys/arch/dreamcast/dev/g2/g2bus_bus_mem.c index a5cf71058856..016df6ea1f5d 100644 --- a/sys/arch/dreamcast/dev/g2/g2bus_bus_mem.c +++ b/sys/arch/dreamcast/dev/g2/g2bus_bus_mem.c @@ -1,4 +1,4 @@ -/* $NetBSD: g2bus_bus_mem.c,v 1.15 2009/08/23 14:28:09 tsutsui Exp $ */ +/* $NetBSD: g2bus_bus_mem.c,v 1.16 2011/07/19 15:52:29 dyoung Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -39,14 +39,14 @@ */ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: g2bus_bus_mem.c,v 1.15 2009/08/23 14:28:09 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: g2bus_bus_mem.c,v 1.16 2011/07/19 15:52:29 dyoung Exp $"); #include #include #include +#include #include -#include #include diff --git a/sys/arch/dreamcast/dev/g2/g2busvar.h b/sys/arch/dreamcast/dev/g2/g2busvar.h index 68c3884736f9..ded7ab01035f 100644 --- a/sys/arch/dreamcast/dev/g2/g2busvar.h +++ b/sys/arch/dreamcast/dev/g2/g2busvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: g2busvar.h,v 1.5 2010/11/21 16:11:32 tsutsui Exp $ */ +/* $NetBSD: g2busvar.h,v 1.6 2011/07/19 15:52:29 dyoung Exp $ */ /*- * Copyright (c) 2001 Marcus Comstedt @@ -35,7 +35,7 @@ #ifndef _DREAMCAST_G2BUSVAR_H_ #define _DREAMCAST_G2BUSVAR_H_ -#include +#include /* * G2 driver attach arguments diff --git a/sys/arch/dreamcast/dev/g2/g2rtc.c b/sys/arch/dreamcast/dev/g2/g2rtc.c index 04b5679e57eb..a59fee0d6e8f 100644 --- a/sys/arch/dreamcast/dev/g2/g2rtc.c +++ b/sys/arch/dreamcast/dev/g2/g2rtc.c @@ -1,4 +1,4 @@ -/* $NetBSD: g2rtc.c,v 1.5 2010/09/01 17:06:00 tsutsui Exp $ */ +/* $NetBSD: g2rtc.c,v 1.6 2011/07/19 15:52:29 dyoung Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -27,15 +27,15 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: g2rtc.c,v 1.5 2010/09/01 17:06:00 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: g2rtc.c,v 1.6 2011/07/19 15:52:29 dyoung Exp $"); #include #include #include +#include #include -#include #include diff --git a/sys/arch/dreamcast/dev/g2/gapspci.c b/sys/arch/dreamcast/dev/g2/gapspci.c index b4c3167bae88..80361614243f 100644 --- a/sys/arch/dreamcast/dev/g2/gapspci.c +++ b/sys/arch/dreamcast/dev/g2/gapspci.c @@ -1,4 +1,4 @@ -/* $NetBSD: gapspci.c,v 1.18 2011/05/17 17:34:49 dyoung Exp $ */ +/* $NetBSD: gapspci.c,v 1.19 2011/07/19 15:52:29 dyoung Exp $ */ /*- * Copyright (c) 2001 Marcus Comstedt @@ -33,7 +33,7 @@ */ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: gapspci.c,v 1.18 2011/05/17 17:34:49 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: gapspci.c,v 1.19 2011/07/19 15:52:29 dyoung Exp $"); #include #include @@ -42,9 +42,9 @@ __KERNEL_RCSID(0, "$NetBSD: gapspci.c,v 1.18 2011/05/17 17:34:49 dyoung Exp $"); #include #include #include +#include #include -#include #include #include diff --git a/sys/arch/dreamcast/dev/g2/gapspci_dma.c b/sys/arch/dreamcast/dev/g2/gapspci_dma.c index e622aab1b760..516918111ec9 100644 --- a/sys/arch/dreamcast/dev/g2/gapspci_dma.c +++ b/sys/arch/dreamcast/dev/g2/gapspci_dma.c @@ -1,4 +1,4 @@ -/* $NetBSD: gapspci_dma.c,v 1.18 2010/11/12 13:18:56 uebayasi Exp $ */ +/* $NetBSD: gapspci_dma.c,v 1.19 2011/07/19 15:52:29 dyoung Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ */ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: gapspci_dma.c,v 1.18 2010/11/12 13:18:56 uebayasi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: gapspci_dma.c,v 1.19 2011/07/19 15:52:29 dyoung Exp $"); #include #include @@ -47,9 +47,9 @@ __KERNEL_RCSID(0, "$NetBSD: gapspci_dma.c,v 1.18 2010/11/12 13:18:56 uebayasi Ex #include #include #include +#include #include -#include #include diff --git a/sys/arch/dreamcast/dev/g2/gapspci_pci.c b/sys/arch/dreamcast/dev/g2/gapspci_pci.c index c56707928a5c..a2f989eceaf3 100644 --- a/sys/arch/dreamcast/dev/g2/gapspci_pci.c +++ b/sys/arch/dreamcast/dev/g2/gapspci_pci.c @@ -1,4 +1,4 @@ -/* $NetBSD: gapspci_pci.c,v 1.12 2010/11/21 16:11:32 tsutsui Exp $ */ +/* $NetBSD: gapspci_pci.c,v 1.13 2011/07/19 15:52:30 dyoung Exp $ */ /*- * Copyright (c) 2001 Marcus Comstedt. @@ -38,15 +38,15 @@ */ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: gapspci_pci.c,v 1.12 2010/11/21 16:11:32 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: gapspci_pci.c,v 1.13 2011/07/19 15:52:30 dyoung Exp $"); #include #include #include #include +#include #include -#include #include #include diff --git a/sys/arch/dreamcast/dev/g2/if_mbe_g2.c b/sys/arch/dreamcast/dev/g2/if_mbe_g2.c index 409b419ab8df..234ce2dc687a 100644 --- a/sys/arch/dreamcast/dev/g2/if_mbe_g2.c +++ b/sys/arch/dreamcast/dev/g2/if_mbe_g2.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_mbe_g2.c,v 1.7 2008/04/12 06:27:01 tsutsui Exp $ */ +/* $NetBSD: if_mbe_g2.c,v 1.8 2011/07/19 15:52:30 dyoung Exp $ */ /* * Copyright (c) 2002 Christian Groessler @@ -64,17 +64,17 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_mbe_g2.c,v 1.7 2008/04/12 06:27:01 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_mbe_g2.c,v 1.8 2011/07/19 15:52:30 dyoung Exp $"); #include #include #include +#include #include #include #include -#include #include #include #include diff --git a/sys/arch/dreamcast/dev/maple/maple.c b/sys/arch/dreamcast/dev/maple/maple.c index bb8863503b04..d12106b00a39 100644 --- a/sys/arch/dreamcast/dev/maple/maple.c +++ b/sys/arch/dreamcast/dev/maple/maple.c @@ -1,4 +1,4 @@ -/* $NetBSD: maple.c,v 1.43 2010/11/12 13:18:57 uebayasi Exp $ */ +/* $NetBSD: maple.c,v 1.44 2011/07/19 15:52:30 dyoung Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -62,7 +62,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: maple.c,v 1.43 2010/11/12 13:18:57 uebayasi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: maple.c,v 1.44 2011/07/19 15:52:30 dyoung Exp $"); #include #include @@ -75,11 +75,11 @@ __KERNEL_RCSID(0, "$NetBSD: maple.c,v 1.43 2010/11/12 13:18:57 uebayasi Exp $"); #include #include #include +#include #include #include -#include #include #include diff --git a/sys/arch/dreamcast/dev/maple/mkbd.c b/sys/arch/dreamcast/dev/maple/mkbd.c index 916e5d06f02d..5bdec2fb2730 100644 --- a/sys/arch/dreamcast/dev/maple/mkbd.c +++ b/sys/arch/dreamcast/dev/maple/mkbd.c @@ -1,4 +1,4 @@ -/* $NetBSD: mkbd.c,v 1.28 2010/10/17 14:13:44 tsutsui Exp $ */ +/* $NetBSD: mkbd.c,v 1.29 2011/07/19 15:52:30 dyoung Exp $ */ /*- * Copyright (c) 2001 Marcus Comstedt @@ -33,7 +33,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: mkbd.c,v 1.28 2010/10/17 14:13:44 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mkbd.c,v 1.29 2011/07/19 15:52:30 dyoung Exp $"); #include #include @@ -43,6 +43,7 @@ __KERNEL_RCSID(0, "$NetBSD: mkbd.c,v 1.28 2010/10/17 14:13:44 tsutsui Exp $"); #include #include #include +#include #include "wskbd.h" @@ -52,7 +53,6 @@ __KERNEL_RCSID(0, "$NetBSD: mkbd.c,v 1.28 2010/10/17 14:13:44 tsutsui Exp $"); #include #include -#include #include #include diff --git a/sys/arch/dreamcast/dev/pvr.c b/sys/arch/dreamcast/dev/pvr.c index 141fcae52822..7eb7505fbd98 100644 --- a/sys/arch/dreamcast/dev/pvr.c +++ b/sys/arch/dreamcast/dev/pvr.c @@ -1,4 +1,4 @@ -/* $NetBSD: pvr.c,v 1.32 2011/05/21 12:00:18 tsutsui Exp $ */ +/* $NetBSD: pvr.c,v 1.33 2011/07/19 15:52:29 dyoung Exp $ */ /*- * Copyright (c) 2001 Marcus Comstedt. @@ -35,7 +35,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: pvr.c,v 1.32 2011/05/21 12:00:18 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pvr.c,v 1.33 2011/07/19 15:52:29 dyoung Exp $"); #include #include @@ -44,10 +44,10 @@ __KERNEL_RCSID(0, "$NetBSD: pvr.c,v 1.32 2011/05/21 12:00:18 tsutsui Exp $"); #include #include #include +#include #include #include -#include #include diff --git a/sys/arch/dreamcast/include/Makefile b/sys/arch/dreamcast/include/Makefile index 194c1f389dee..51de46162f44 100644 --- a/sys/arch/dreamcast/include/Makefile +++ b/sys/arch/dreamcast/include/Makefile @@ -1,9 +1,9 @@ -# $NetBSD: Makefile,v 1.17 2011/07/17 20:54:38 joerg Exp $ +# $NetBSD: Makefile,v 1.18 2011/07/19 15:52:30 dyoung Exp $ INCSDIR= /usr/include/dreamcast INCS= ansi.h aout_machdep.h asm.h \ - bswap.h bus.h \ + bswap.h \ cdefs.h coff_machdep.h cpu.h cputypes.h \ disklabel.h \ elf_machdep.h endian.h endian_machdep.h \ diff --git a/sys/arch/dreamcast/include/bus.h b/sys/arch/dreamcast/include/bus_defs.h similarity index 56% rename from sys/arch/dreamcast/include/bus.h rename to sys/arch/dreamcast/include/bus_defs.h index cf3c1bc4d034..65d6129151e4 100644 --- a/sys/arch/dreamcast/include/bus.h +++ b/sys/arch/dreamcast/include/bus_defs.h @@ -1,4 +1,4 @@ -/* $NetBSD: bus.h,v 1.15 2009/08/23 14:28:09 tsutsui Exp $ */ +/* $NetBSD: bus_defs.h,v 1.1 2011/07/19 15:52:30 dyoung Exp $ */ /*- * Copyright (c) 1997, 1998, 2000, 2001 The NetBSD Foundation, Inc. @@ -57,10 +57,8 @@ * rights to redistribute these changes. */ -#ifndef _DREAMCAST_BUS_H_ -#define _DREAMCAST_BUS_H_ - -#include +#ifndef _DREAMCAST_BUS_DEFS_H_ +#define _DREAMCAST_BUS_DEFS_H_ #ifdef _KERNEL /* @@ -224,226 +222,15 @@ struct dreamcast_bus_space { bus_space_handle_t, bus_size_t, bus_size_t); }; -#ifdef _KERNEL -/* - * Utility macros; INTERNAL USE ONLY. - */ -#define __dbs_c(a,b) __CONCAT(a,b) -#define __dbs_opname(op,size) __dbs_c(__dbs_c(__dbs_c(dbs_,op),_),size) - -#define __dbs_rs(sz, tn, t, h, o) \ - (__BUS_SPACE_ADDRESS_SANITY((h) + (o), tn, "bus addr"), \ - (*(t)->__dbs_opname(r,sz))((t)->dbs_cookie, h, o)) - -#define __dbs_ws(sz, tn, t, h, o, v) \ -do { \ - __BUS_SPACE_ADDRESS_SANITY((h) + (o), tn, "bus addr"); \ - (*(t)->__dbs_opname(w,sz))((t)->dbs_cookie, h, o, v); \ -} while (0) - -#define __dbs_nonsingle(type, sz, tn, t, h, o, a, c) \ -do { \ - __BUS_SPACE_ADDRESS_SANITY((a), tn, "buffer"); \ - __BUS_SPACE_ADDRESS_SANITY((h) + (o), tn, "bus addr"); \ - (*(t)->__dbs_opname(type,sz))((t)->dbs_cookie, h, o, a, c); \ -} while (0) - -#define __dbs_set(type, sz, tn, t, h, o, v, c) \ -do { \ - __BUS_SPACE_ADDRESS_SANITY((h) + (o), tn, "bus addr"); \ - (*(t)->__dbs_opname(type,sz))((t)->dbs_cookie, h, o, v, c); \ -} while (0) - -#define __dbs_copy(sz, tn, t, h1, o1, h2, o2, cnt) \ -do { \ - __BUS_SPACE_ADDRESS_SANITY((h1) + (o1), tn, "bus addr 1"); \ - __BUS_SPACE_ADDRESS_SANITY((h2) + (o2), tn, "bus addr 2"); \ - (*(t)->__dbs_opname(c,sz))((t)->dbs_cookie, h1, o1, h2, o2, cnt); \ -} while (0) - - -/* - * Mapping and unmapping operations. - */ -#define bus_space_map(t, a, s, f, hp) \ - (*(t)->dbs_map)((t)->dbs_cookie, (a), (s), (f), (hp)) -#define bus_space_unmap(t, h, s) \ - (*(t)->dbs_unmap)((t)->dbs_cookie, (h), (s)) -#define bus_space_subregion(t, h, o, s, hp) \ - (*(t)->dbs_subregion)((t)->dbs_cookie, (h), (o), (s), (hp)) -#define bus_space_mmap(t, a, o, p, f) \ - (*(t)->dbs_mmap)((t)->dbs_cookie, (a), (o), (p), (f)) - -#endif /* _KERNEL */ - #define BUS_SPACE_MAP_CACHEABLE 0x01 #define BUS_SPACE_MAP_LINEAR 0x02 #define BUS_SPACE_MAP_PREFETCHABLE 0x04 #ifdef _KERNEL -/* - * Allocation and deallocation operations. - */ -#define bus_space_alloc(t, rs, re, s, a, b, f, ap, hp) \ - (*(t)->dbs_alloc)((t)->dbs_cookie, (rs), (re), (s), (a), (b), \ - (f), (ap), (hp)) -#define bus_space_free(t, h, s) \ - (*(t)->dbs_free)((t)->dbs_cookie, (h), (s)) - -/* - * Get kernel virtual address for ranges mapped BUS_SPACE_MAP_LINEAR. - */ -#define bus_space_vaddr(t, h) \ - (*(t)->dbs_vaddr)((t)->dbs_cookie, (h)) - -/* - * Bus barrier operations. The Dreamcast does not currently require - * barriers, but we must provide the flags to MI code. - */ -#define bus_space_barrier(t, h, o, l, f) \ - ((void)((void)(t), (void)(h), (void)(o), (void)(l), (void)(f))) #define BUS_SPACE_BARRIER_READ 0x01 #define BUS_SPACE_BARRIER_WRITE 0x02 - -/* - * Bus read (single) operations. - */ -#define bus_space_read_1(t, h, o) __dbs_rs(1,uint8_t,(t),(h),(o)) -#define bus_space_read_2(t, h, o) __dbs_rs(2,uint16_t,(t),(h),(o)) -#define bus_space_read_4(t, h, o) __dbs_rs(4,uint32_t,(t),(h),(o)) -#define bus_space_read_8(t, h, o) __dbs_rs(8,uint64_t,(t),(h),(o)) - - -/* - * Bus read multiple operations. - */ -#define bus_space_read_multi_1(t, h, o, a, c) \ - __dbs_nonsingle(rm,1,uint8_t,(t),(h),(o),(a),(c)) -#define bus_space_read_multi_2(t, h, o, a, c) \ - __dbs_nonsingle(rm,2,uint16_t,(t),(h),(o),(a),(c)) -#define bus_space_read_multi_4(t, h, o, a, c) \ - __dbs_nonsingle(rm,4,uint32_t,(t),(h),(o),(a),(c)) -#define bus_space_read_multi_8(t, h, o, a, c) \ - __dbs_nonsingle(rm,8,uint64_t,(t),(h),(o),(a),(c)) - - -/* - * Bus read region operations. - */ -#define bus_space_read_region_1(t, h, o, a, c) \ - __dbs_nonsingle(rr,1,uint8_t,(t),(h),(o),(a),(c)) -#define bus_space_read_region_2(t, h, o, a, c) \ - __dbs_nonsingle(rr,2,uint16_t,(t),(h),(o),(a),(c)) -#define bus_space_read_region_4(t, h, o, a, c) \ - __dbs_nonsingle(rr,4,uint32_t,(t),(h),(o),(a),(c)) -#define bus_space_read_region_8(t, h, o, a, c) \ - __dbs_nonsingle(rr,8,uint64_t,(t),(h),(o),(a),(c)) - - -/* - * Bus write (single) operations. - */ -#define bus_space_write_1(t, h, o, v) __dbs_ws(1,uint8_t,(t),(h),(o),(v)) -#define bus_space_write_2(t, h, o, v) __dbs_ws(2,uint16_t,(t),(h),(o),(v)) -#define bus_space_write_4(t, h, o, v) __dbs_ws(4,uint32_t,(t),(h),(o),(v)) -#define bus_space_write_8(t, h, o, v) __dbs_ws(8,uint64_t,(t),(h),(o),(v)) - - -/* - * Bus write multiple operations. - */ -#define bus_space_write_multi_1(t, h, o, a, c) \ - __dbs_nonsingle(wm,1,uint8_t,(t),(h),(o),(a),(c)) -#define bus_space_write_multi_2(t, h, o, a, c) \ - __dbs_nonsingle(wm,2,uint16_t,(t),(h),(o),(a),(c)) -#define bus_space_write_multi_4(t, h, o, a, c) \ - __dbs_nonsingle(wm,4,uint32_t,(t),(h),(o),(a),(c)) -#define bus_space_write_multi_8(t, h, o, a, c) \ - __dbs_nonsingle(wm,8,uint64_t,(t),(h),(o),(a),(c)) - - -/* - * Bus write region operations. - */ -#define bus_space_write_region_1(t, h, o, a, c) \ - __dbs_nonsingle(wr,1,uint8_t,(t),(h),(o),(a),(c)) -#define bus_space_write_region_2(t, h, o, a, c) \ - __dbs_nonsingle(wr,2,uint16_t,(t),(h),(o),(a),(c)) -#define bus_space_write_region_4(t, h, o, a, c) \ - __dbs_nonsingle(wr,4,uint32_t,(t),(h),(o),(a),(c)) -#define bus_space_write_region_8(t, h, o, a, c) \ - __dbs_nonsingle(wr,8,uint64_t,(t),(h),(o),(a),(c)) - - -/* - * Set multiple operations. - */ -#define bus_space_set_multi_1(t, h, o, v, c) \ - __dbs_set(sm,1,uint8_t,(t),(h),(o),(v),(c)) -#define bus_space_set_multi_2(t, h, o, v, c) \ - __dbs_set(sm,2,uint16_t,(t),(h),(o),(v),(c)) -#define bus_space_set_multi_4(t, h, o, v, c) \ - __dbs_set(sm,4,uint32_t,(t),(h),(o),(v),(c)) -#define bus_space_set_multi_8(t, h, o, v, c) \ - __dbs_set(sm,8,uint64_t,(t),(h),(o),(v),(c)) - - -/* - * Set region operations. - */ -#define bus_space_set_region_1(t, h, o, v, c) \ - __dbs_set(sr,1,uint8_t,(t),(h),(o),(v),(c)) -#define bus_space_set_region_2(t, h, o, v, c) \ - __dbs_set(sr,2,uint16_t,(t),(h),(o),(v),(c)) -#define bus_space_set_region_4(t, h, o, v, c) \ - __dbs_set(sr,4,uint32_t,(t),(h),(o),(v),(c)) -#define bus_space_set_region_8(t, h, o, v, c) \ - __dbs_set(sr,8,uint64_t,(t),(h),(o),(v),(c)) - - -/* - * Copy region operations. - */ -#define bus_space_copy_region_1(t, h1, o1, h2, o2, c) \ - __dbs_copy(1, uint8_t, (t), (h1), (o1), (h2), (o2), (c)) -#define bus_space_copy_region_2(t, h1, o1, h2, o2, c) \ - __dbs_copy(2, uint16_t, (t), (h1), (o1), (h2), (o2), (c)) -#define bus_space_copy_region_4(t, h1, o1, h2, o2, c) \ - __dbs_copy(4, uint32_t, (t), (h1), (o1), (h2), (o2), (c)) -#define bus_space_copy_region_8(t, h1, o1, h2, o2, c) \ - __dbs_copy(8, uint64_t, (t), (h1), (o1), (h2), (o2), (c)) - -/* - * Bus stream operations--defined in terms of non-stream counterparts - */ -#define __BUS_SPACE_HAS_STREAM_METHODS 1 -#define bus_space_read_stream_1 bus_space_read_1 -#define bus_space_read_stream_2 bus_space_read_2 -#define bus_space_read_stream_4 bus_space_read_4 -#define bus_space_read_stream_8 bus_space_read_8 -#define bus_space_read_multi_stream_1 bus_space_read_multi_1 -#define bus_space_read_multi_stream_2 bus_space_read_multi_2 -#define bus_space_read_multi_stream_4 bus_space_read_multi_4 -#define bus_space_read_multi_stream_8 bus_space_read_multi_8 -#define bus_space_read_region_stream_1 bus_space_read_region_1 -#define bus_space_read_region_stream_2 bus_space_read_region_2 -#define bus_space_read_region_stream_4 bus_space_read_region_4 -#define bus_space_read_region_stream_8 bus_space_read_region_8 -#define bus_space_write_stream_1 bus_space_write_1 -#define bus_space_write_stream_2 bus_space_write_2 -#define bus_space_write_stream_4 bus_space_write_4 -#define bus_space_write_stream_8 bus_space_write_8 -#define bus_space_write_multi_stream_1 bus_space_write_multi_1 -#define bus_space_write_multi_stream_2 bus_space_write_multi_2 -#define bus_space_write_multi_stream_4 bus_space_write_multi_4 -#define bus_space_write_multi_stream_8 bus_space_write_multi_8 -#define bus_space_write_region_stream_1 bus_space_write_region_1 -#define bus_space_write_region_stream_2 bus_space_write_region_2 -#define bus_space_write_region_stream_4 bus_space_write_region_4 -#define bus_space_write_region_stream_8 bus_space_write_region_8 - #endif /* _KERNEL */ /* @@ -533,38 +320,6 @@ struct dreamcast_bus_dma_tag { int, off_t, int, int); }; -#define bus_dmamap_create(t, s, n, m, b, f, p) \ - (*(t)->_dmamap_create)((t), (s), (n), (m), (b), (f), (p)) -#define bus_dmamap_destroy(t, p) \ - (*(t)->_dmamap_destroy)((t), (p)) -#define bus_dmamap_load(t, m, b, s, p, f) \ - (*(t)->_dmamap_load)((t), (m), (b), (s), (p), (f)) -#define bus_dmamap_load_mbuf(t, m, b, f) \ - (*(t)->_dmamap_load_mbuf)((t), (m), (b), (f)) -#define bus_dmamap_load_uio(t, m, u, f) \ - (*(t)->_dmamap_load_uio)((t), (m), (u), (f)) -#define bus_dmamap_load_raw(t, m, sg, n, s, f) \ - (*(t)->_dmamap_load_raw)((t), (m), (sg), (n), (s), (f)) -#define bus_dmamap_unload(t, p) \ - (*(t)->_dmamap_unload)((t), (p)) -#define bus_dmamap_sync(t, m, o, l, op) \ - (void)((t)->_dmamap_sync ? \ - (*(t)->_dmamap_sync)((t), (m), (o), (l), (op)) : (void)0) - -#define bus_dmamem_alloc(t, s, a, b, sg, n, r, f) \ - (*(t)->_dmamem_alloc)((t), (s), (a), (b), (sg), (n), (r), (f)) -#define bus_dmamem_free(t, sg, n) \ - (*(t)->_dmamem_free)((t), (sg), (n)) -#define bus_dmamem_map(t, sg, n, s, k, f) \ - (*(t)->_dmamem_map)((t), (sg), (n), (s), (k), (f)) -#define bus_dmamem_unmap(t, k, s) \ - (*(t)->_dmamem_unmap)((t), (k), (s)) -#define bus_dmamem_mmap(t, sg, n, o, p, f) \ - (*(t)->_dmamem_mmap)((t), (sg), (n), (o), (p), (f)) - -#define bus_dmatag_subregion(t, mna, mxa, nt, f) EOPNOTSUPP -#define bus_dmatag_destroy(t) - /* * bus_dmamap_t * @@ -591,4 +346,4 @@ struct dreamcast_bus_dmamap { bus_size_t dm_maxsegsz; /* largest possible segment */ }; -#endif /* _DREAMCAST_BUS_H_ */ +#endif /* _DREAMCAST_BUS_DEFS_H_ */ diff --git a/sys/arch/dreamcast/include/bus_funcs.h b/sys/arch/dreamcast/include/bus_funcs.h new file mode 100644 index 000000000000..3219b6aa93d2 --- /dev/null +++ b/sys/arch/dreamcast/include/bus_funcs.h @@ -0,0 +1,309 @@ +/* $NetBSD: bus_funcs.h,v 1.1 2011/07/19 15:52:31 dyoung Exp $ */ + +/*- + * Copyright (c) 1997, 1998, 2000, 2001 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, + * NASA Ames Research Center. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright (c) 1996 Carnegie-Mellon University. + * All rights reserved. + * + * Author: Chris G. Demetriou + * + * Permission to use, copy, modify and distribute this software and + * its documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND + * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie the + * rights to redistribute these changes. + */ + +#ifndef _DREAMCAST_BUS_FUNCS_H_ +#define _DREAMCAST_BUS_FUNCS_H_ + +#ifdef _KERNEL +/* + * Utility macros; INTERNAL USE ONLY. + */ +#define __dbs_c(a,b) __CONCAT(a,b) +#define __dbs_opname(op,size) __dbs_c(__dbs_c(__dbs_c(dbs_,op),_),size) + +#define __dbs_rs(sz, tn, t, h, o) \ + (__BUS_SPACE_ADDRESS_SANITY((h) + (o), tn, "bus addr"), \ + (*(t)->__dbs_opname(r,sz))((t)->dbs_cookie, h, o)) + +#define __dbs_ws(sz, tn, t, h, o, v) \ +do { \ + __BUS_SPACE_ADDRESS_SANITY((h) + (o), tn, "bus addr"); \ + (*(t)->__dbs_opname(w,sz))((t)->dbs_cookie, h, o, v); \ +} while (0) + +#define __dbs_nonsingle(type, sz, tn, t, h, o, a, c) \ +do { \ + __BUS_SPACE_ADDRESS_SANITY((a), tn, "buffer"); \ + __BUS_SPACE_ADDRESS_SANITY((h) + (o), tn, "bus addr"); \ + (*(t)->__dbs_opname(type,sz))((t)->dbs_cookie, h, o, a, c); \ +} while (0) + +#define __dbs_set(type, sz, tn, t, h, o, v, c) \ +do { \ + __BUS_SPACE_ADDRESS_SANITY((h) + (o), tn, "bus addr"); \ + (*(t)->__dbs_opname(type,sz))((t)->dbs_cookie, h, o, v, c); \ +} while (0) + +#define __dbs_copy(sz, tn, t, h1, o1, h2, o2, cnt) \ +do { \ + __BUS_SPACE_ADDRESS_SANITY((h1) + (o1), tn, "bus addr 1"); \ + __BUS_SPACE_ADDRESS_SANITY((h2) + (o2), tn, "bus addr 2"); \ + (*(t)->__dbs_opname(c,sz))((t)->dbs_cookie, h1, o1, h2, o2, cnt); \ +} while (0) + + +/* + * Mapping and unmapping operations. + */ +#define bus_space_map(t, a, s, f, hp) \ + (*(t)->dbs_map)((t)->dbs_cookie, (a), (s), (f), (hp)) +#define bus_space_unmap(t, h, s) \ + (*(t)->dbs_unmap)((t)->dbs_cookie, (h), (s)) +#define bus_space_subregion(t, h, o, s, hp) \ + (*(t)->dbs_subregion)((t)->dbs_cookie, (h), (o), (s), (hp)) +#define bus_space_mmap(t, a, o, p, f) \ + (*(t)->dbs_mmap)((t)->dbs_cookie, (a), (o), (p), (f)) + +#endif /* _KERNEL */ + +#ifdef _KERNEL +/* + * Allocation and deallocation operations. + */ +#define bus_space_alloc(t, rs, re, s, a, b, f, ap, hp) \ + (*(t)->dbs_alloc)((t)->dbs_cookie, (rs), (re), (s), (a), (b), \ + (f), (ap), (hp)) +#define bus_space_free(t, h, s) \ + (*(t)->dbs_free)((t)->dbs_cookie, (h), (s)) + +/* + * Get kernel virtual address for ranges mapped BUS_SPACE_MAP_LINEAR. + */ +#define bus_space_vaddr(t, h) \ + (*(t)->dbs_vaddr)((t)->dbs_cookie, (h)) + +/* + * Bus barrier operations. The Dreamcast does not currently require + * barriers, but we must provide the flags to MI code. + */ +#define bus_space_barrier(t, h, o, l, f) \ + ((void)((void)(t), (void)(h), (void)(o), (void)(l), (void)(f))) + +/* + * Bus read (single) operations. + */ +#define bus_space_read_1(t, h, o) __dbs_rs(1,uint8_t,(t),(h),(o)) +#define bus_space_read_2(t, h, o) __dbs_rs(2,uint16_t,(t),(h),(o)) +#define bus_space_read_4(t, h, o) __dbs_rs(4,uint32_t,(t),(h),(o)) +#define bus_space_read_8(t, h, o) __dbs_rs(8,uint64_t,(t),(h),(o)) + + +/* + * Bus read multiple operations. + */ +#define bus_space_read_multi_1(t, h, o, a, c) \ + __dbs_nonsingle(rm,1,uint8_t,(t),(h),(o),(a),(c)) +#define bus_space_read_multi_2(t, h, o, a, c) \ + __dbs_nonsingle(rm,2,uint16_t,(t),(h),(o),(a),(c)) +#define bus_space_read_multi_4(t, h, o, a, c) \ + __dbs_nonsingle(rm,4,uint32_t,(t),(h),(o),(a),(c)) +#define bus_space_read_multi_8(t, h, o, a, c) \ + __dbs_nonsingle(rm,8,uint64_t,(t),(h),(o),(a),(c)) + + +/* + * Bus read region operations. + */ +#define bus_space_read_region_1(t, h, o, a, c) \ + __dbs_nonsingle(rr,1,uint8_t,(t),(h),(o),(a),(c)) +#define bus_space_read_region_2(t, h, o, a, c) \ + __dbs_nonsingle(rr,2,uint16_t,(t),(h),(o),(a),(c)) +#define bus_space_read_region_4(t, h, o, a, c) \ + __dbs_nonsingle(rr,4,uint32_t,(t),(h),(o),(a),(c)) +#define bus_space_read_region_8(t, h, o, a, c) \ + __dbs_nonsingle(rr,8,uint64_t,(t),(h),(o),(a),(c)) + + +/* + * Bus write (single) operations. + */ +#define bus_space_write_1(t, h, o, v) __dbs_ws(1,uint8_t,(t),(h),(o),(v)) +#define bus_space_write_2(t, h, o, v) __dbs_ws(2,uint16_t,(t),(h),(o),(v)) +#define bus_space_write_4(t, h, o, v) __dbs_ws(4,uint32_t,(t),(h),(o),(v)) +#define bus_space_write_8(t, h, o, v) __dbs_ws(8,uint64_t,(t),(h),(o),(v)) + + +/* + * Bus write multiple operations. + */ +#define bus_space_write_multi_1(t, h, o, a, c) \ + __dbs_nonsingle(wm,1,uint8_t,(t),(h),(o),(a),(c)) +#define bus_space_write_multi_2(t, h, o, a, c) \ + __dbs_nonsingle(wm,2,uint16_t,(t),(h),(o),(a),(c)) +#define bus_space_write_multi_4(t, h, o, a, c) \ + __dbs_nonsingle(wm,4,uint32_t,(t),(h),(o),(a),(c)) +#define bus_space_write_multi_8(t, h, o, a, c) \ + __dbs_nonsingle(wm,8,uint64_t,(t),(h),(o),(a),(c)) + + +/* + * Bus write region operations. + */ +#define bus_space_write_region_1(t, h, o, a, c) \ + __dbs_nonsingle(wr,1,uint8_t,(t),(h),(o),(a),(c)) +#define bus_space_write_region_2(t, h, o, a, c) \ + __dbs_nonsingle(wr,2,uint16_t,(t),(h),(o),(a),(c)) +#define bus_space_write_region_4(t, h, o, a, c) \ + __dbs_nonsingle(wr,4,uint32_t,(t),(h),(o),(a),(c)) +#define bus_space_write_region_8(t, h, o, a, c) \ + __dbs_nonsingle(wr,8,uint64_t,(t),(h),(o),(a),(c)) + + +/* + * Set multiple operations. + */ +#define bus_space_set_multi_1(t, h, o, v, c) \ + __dbs_set(sm,1,uint8_t,(t),(h),(o),(v),(c)) +#define bus_space_set_multi_2(t, h, o, v, c) \ + __dbs_set(sm,2,uint16_t,(t),(h),(o),(v),(c)) +#define bus_space_set_multi_4(t, h, o, v, c) \ + __dbs_set(sm,4,uint32_t,(t),(h),(o),(v),(c)) +#define bus_space_set_multi_8(t, h, o, v, c) \ + __dbs_set(sm,8,uint64_t,(t),(h),(o),(v),(c)) + + +/* + * Set region operations. + */ +#define bus_space_set_region_1(t, h, o, v, c) \ + __dbs_set(sr,1,uint8_t,(t),(h),(o),(v),(c)) +#define bus_space_set_region_2(t, h, o, v, c) \ + __dbs_set(sr,2,uint16_t,(t),(h),(o),(v),(c)) +#define bus_space_set_region_4(t, h, o, v, c) \ + __dbs_set(sr,4,uint32_t,(t),(h),(o),(v),(c)) +#define bus_space_set_region_8(t, h, o, v, c) \ + __dbs_set(sr,8,uint64_t,(t),(h),(o),(v),(c)) + + +/* + * Copy region operations. + */ +#define bus_space_copy_region_1(t, h1, o1, h2, o2, c) \ + __dbs_copy(1, uint8_t, (t), (h1), (o1), (h2), (o2), (c)) +#define bus_space_copy_region_2(t, h1, o1, h2, o2, c) \ + __dbs_copy(2, uint16_t, (t), (h1), (o1), (h2), (o2), (c)) +#define bus_space_copy_region_4(t, h1, o1, h2, o2, c) \ + __dbs_copy(4, uint32_t, (t), (h1), (o1), (h2), (o2), (c)) +#define bus_space_copy_region_8(t, h1, o1, h2, o2, c) \ + __dbs_copy(8, uint64_t, (t), (h1), (o1), (h2), (o2), (c)) + +/* + * Bus stream operations--defined in terms of non-stream counterparts + */ +#define __BUS_SPACE_HAS_STREAM_METHODS 1 +#define bus_space_read_stream_1 bus_space_read_1 +#define bus_space_read_stream_2 bus_space_read_2 +#define bus_space_read_stream_4 bus_space_read_4 +#define bus_space_read_stream_8 bus_space_read_8 +#define bus_space_read_multi_stream_1 bus_space_read_multi_1 +#define bus_space_read_multi_stream_2 bus_space_read_multi_2 +#define bus_space_read_multi_stream_4 bus_space_read_multi_4 +#define bus_space_read_multi_stream_8 bus_space_read_multi_8 +#define bus_space_read_region_stream_1 bus_space_read_region_1 +#define bus_space_read_region_stream_2 bus_space_read_region_2 +#define bus_space_read_region_stream_4 bus_space_read_region_4 +#define bus_space_read_region_stream_8 bus_space_read_region_8 +#define bus_space_write_stream_1 bus_space_write_1 +#define bus_space_write_stream_2 bus_space_write_2 +#define bus_space_write_stream_4 bus_space_write_4 +#define bus_space_write_stream_8 bus_space_write_8 +#define bus_space_write_multi_stream_1 bus_space_write_multi_1 +#define bus_space_write_multi_stream_2 bus_space_write_multi_2 +#define bus_space_write_multi_stream_4 bus_space_write_multi_4 +#define bus_space_write_multi_stream_8 bus_space_write_multi_8 +#define bus_space_write_region_stream_1 bus_space_write_region_1 +#define bus_space_write_region_stream_2 bus_space_write_region_2 +#define bus_space_write_region_stream_4 bus_space_write_region_4 +#define bus_space_write_region_stream_8 bus_space_write_region_8 + +#endif /* _KERNEL */ + +#define bus_dmamap_create(t, s, n, m, b, f, p) \ + (*(t)->_dmamap_create)((t), (s), (n), (m), (b), (f), (p)) +#define bus_dmamap_destroy(t, p) \ + (*(t)->_dmamap_destroy)((t), (p)) +#define bus_dmamap_load(t, m, b, s, p, f) \ + (*(t)->_dmamap_load)((t), (m), (b), (s), (p), (f)) +#define bus_dmamap_load_mbuf(t, m, b, f) \ + (*(t)->_dmamap_load_mbuf)((t), (m), (b), (f)) +#define bus_dmamap_load_uio(t, m, u, f) \ + (*(t)->_dmamap_load_uio)((t), (m), (u), (f)) +#define bus_dmamap_load_raw(t, m, sg, n, s, f) \ + (*(t)->_dmamap_load_raw)((t), (m), (sg), (n), (s), (f)) +#define bus_dmamap_unload(t, p) \ + (*(t)->_dmamap_unload)((t), (p)) +#define bus_dmamap_sync(t, m, o, l, op) \ + (void)((t)->_dmamap_sync ? \ + (*(t)->_dmamap_sync)((t), (m), (o), (l), (op)) : (void)0) + +#define bus_dmamem_alloc(t, s, a, b, sg, n, r, f) \ + (*(t)->_dmamem_alloc)((t), (s), (a), (b), (sg), (n), (r), (f)) +#define bus_dmamem_free(t, sg, n) \ + (*(t)->_dmamem_free)((t), (sg), (n)) +#define bus_dmamem_map(t, sg, n, s, k, f) \ + (*(t)->_dmamem_map)((t), (sg), (n), (s), (k), (f)) +#define bus_dmamem_unmap(t, k, s) \ + (*(t)->_dmamem_unmap)((t), (k), (s)) +#define bus_dmamem_mmap(t, sg, n, o, p, f) \ + (*(t)->_dmamem_mmap)((t), (sg), (n), (o), (p), (f)) + +#define bus_dmatag_subregion(t, mna, mxa, nt, f) EOPNOTSUPP +#define bus_dmatag_destroy(t) + +#endif /* _DREAMCAST_BUS_FUNCS_H_ */