busiosubr.c revision 84615
184615Snyan/* $FreeBSD: head/sys/pc98/pc98/busiosubr.c 84615 2001-10-07 10:04:18Z nyan $ */ 284615Snyan/* $NecBSD: busiosubr.c,v 1.30.4.4 1999/08/28 02:25:35 honda Exp $ */ 384615Snyan/* $NetBSD$ */ 484615Snyan 584615Snyan/* 684615Snyan * [NetBSD for NEC PC-98 series] 784615Snyan * Copyright (c) 1996, 1997, 1998 884615Snyan * NetBSD/pc98 porting staff. All rights reserved. 984615Snyan * 1084615Snyan * [Ported for FreeBSD] 1184615Snyan * Copyright (c) 2001 1284615Snyan * TAKAHASHI Yoshihiro. All rights reserved. 1384615Snyan * 1484615Snyan * Redistribution and use in source and binary forms, with or without 1584615Snyan * modification, are permitted provided that the following conditions 1684615Snyan * are met: 1784615Snyan * 1. Redistributions of source code must retain the above copyright 1884615Snyan * notice, this list of conditions and the following disclaimer. 1984615Snyan * 2. Redistributions in binary form must reproduce the above copyright 2084615Snyan * notice, this list of conditions and the following disclaimer in the 2184615Snyan * documentation and/or other materials provided with the distribution. 2284615Snyan * 3. The name of the author may not be used to endorse or promote products 2384615Snyan * derived from this software without specific prior written permission. 2484615Snyan * 2584615Snyan * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 2684615Snyan * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2784615Snyan * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2884615Snyan * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 2984615Snyan * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 3084615Snyan * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 3184615Snyan * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3284615Snyan * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 3384615Snyan * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 3484615Snyan * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 3584615Snyan * POSSIBILITY OF SUCH DAMAGE. 3684615Snyan */ 3784615Snyan 3884615Snyan/* 3984615Snyan * Copyright (c) 1997, 1998 4084615Snyan * Naofumi HONDA. All rights reserved. 4184615Snyan */ 4284615Snyan 4384615Snyan#include <sys/param.h> 4484615Snyan#include <sys/systm.h> 4584615Snyan#include <sys/kernel.h> 4684615Snyan#include <machine/bus.h> 4784615Snyan 4884615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(SBUS_DA_io,u_int8_t,1) 4984615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(SBUS_DA_io,u_int16_t,2) 5084615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(SBUS_DA_io,u_int32_t,4) 5184615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(SBUS_DA_mem,u_int8_t,1) 5284615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(SBUS_DA_mem,u_int16_t,2) 5384615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(SBUS_DA_mem,u_int32_t,4) 5484615Snyan 5584615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(SBUS_RA_io,u_int8_t,1) 5684615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(SBUS_RA_io,u_int16_t,2) 5784615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(SBUS_RA_io,u_int32_t,4) 5884615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(SBUS_RA_mem,u_int8_t,1) 5984615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(SBUS_RA_mem,u_int16_t,2) 6084615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(SBUS_RA_mem,u_int32_t,4) 6184615Snyan 6284615Snyanstruct bus_space_tag SBUS_io_space_tag = { 6384615Snyan BUS_SPACE_IO, 6484615Snyan 6584615Snyan /* direct bus access methods */ 6684615Snyan { 6784615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_DA_io,u_int8_t,1), 6884615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_DA_io,u_int16_t,2), 6984615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_DA_io,u_int32_t,4), 7084615Snyan }, 7184615Snyan 7284615Snyan /* relocate bus access methods */ 7384615Snyan { 7484615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_RA_io,u_int8_t,1), 7584615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_RA_io,u_int16_t,2), 7684615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_RA_io,u_int32_t,4), 7784615Snyan } 7884615Snyan}; 7984615Snyan 8084615Snyanstruct bus_space_tag SBUS_mem_space_tag = { 8184615Snyan BUS_SPACE_MEM, 8284615Snyan 8384615Snyan /* direct bus access methods */ 8484615Snyan { 8584615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_DA_mem,u_int8_t,1), 8684615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_DA_mem,u_int16_t,2), 8784615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_DA_mem,u_int32_t,4), 8884615Snyan }, 8984615Snyan 9084615Snyan /* relocate bus access methods */ 9184615Snyan { 9284615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_RA_mem,u_int8_t,1), 9384615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_RA_mem,u_int16_t,2), 9484615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_RA_mem,u_int32_t,4), 9584615Snyan } 9684615Snyan}; 9784615Snyan 9884615Snyan 9984615Snyan#include "opt_mecia.h" 10084615Snyan#ifdef DEV_MECIA 10184615Snyan 10284615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(NEPC_DA_io,u_int16_t,2) 10384615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(NEPC_DA_io,u_int32_t,4) 10484615Snyan 10584615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(NEPC_RA_io,u_int16_t,2) 10684615Snyan_BUS_SPACE_CALL_FUNCS_PROTO(NEPC_RA_io,u_int32_t,4) 10784615Snyan 10884615Snyanstruct bus_space_tag NEPC_io_space_tag = { 10984615Snyan BUS_SPACE_IO, 11084615Snyan 11184615Snyan /* direct bus access methods */ 11284615Snyan { 11384615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_DA_io,u_int8_t,1), 11484615Snyan _BUS_SPACE_CALL_FUNCS_TAB(NEPC_DA_io,u_int16_t,2), 11584615Snyan _BUS_SPACE_CALL_FUNCS_TAB(NEPC_DA_io,u_int32_t,4), 11684615Snyan }, 11784615Snyan 11884615Snyan /* relocate bus access methods */ 11984615Snyan { 12084615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_RA_io,u_int8_t,1), 12184615Snyan _BUS_SPACE_CALL_FUNCS_TAB(NEPC_RA_io,u_int16_t,2), 12284615Snyan _BUS_SPACE_CALL_FUNCS_TAB(NEPC_RA_io,u_int32_t,4), 12384615Snyan } 12484615Snyan}; 12584615Snyan 12684615Snyanstruct bus_space_tag NEPC_mem_space_tag = { 12784615Snyan BUS_SPACE_MEM, 12884615Snyan 12984615Snyan /* direct bus access methods */ 13084615Snyan { 13184615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_DA_mem,u_int8_t,1), 13284615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_DA_mem,u_int16_t,2), 13384615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_DA_mem,u_int32_t,4), 13484615Snyan }, 13584615Snyan 13684615Snyan /* relocate bus access methods */ 13784615Snyan { 13884615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_RA_mem,u_int8_t,1), 13984615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_RA_mem,u_int16_t,2), 14084615Snyan _BUS_SPACE_CALL_FUNCS_TAB(SBUS_RA_mem,u_int32_t,4), 14184615Snyan } 14284615Snyan}; 14384615Snyan 14484615Snyan#endif /* DEV_MECIA */ 145