1*34b4634aSjason /* $OpenBSD: centralvar.h,v 1.1 2004/09/22 21:31:51 jason Exp $ */ 2*34b4634aSjason 3*34b4634aSjason /* 4*34b4634aSjason * Copyright (c) 2004 Jason L. Wright (jason@thought.net) 5*34b4634aSjason * All rights reserved. 6*34b4634aSjason * 7*34b4634aSjason * Redistribution and use in source and binary forms, with or without 8*34b4634aSjason * modification, are permitted provided that the following conditions 9*34b4634aSjason * are met: 10*34b4634aSjason * 1. Redistributions of source code must retain the above copyright 11*34b4634aSjason * notice, this list of conditions and the following disclaimer. 12*34b4634aSjason * 2. Redistributions in binary form must reproduce the above copyright 13*34b4634aSjason * notice, this list of conditions and the following disclaimer in the 14*34b4634aSjason * documentation and/or other materials provided with the distribution. 15*34b4634aSjason * 16*34b4634aSjason * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17*34b4634aSjason * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18*34b4634aSjason * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19*34b4634aSjason * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 20*34b4634aSjason * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21*34b4634aSjason * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22*34b4634aSjason * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23*34b4634aSjason * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24*34b4634aSjason * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 25*34b4634aSjason * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26*34b4634aSjason * POSSIBILITY OF SUCH DAMAGE. 27*34b4634aSjason */ 28*34b4634aSjason 29*34b4634aSjason struct central_reg { 30*34b4634aSjason u_int32_t cbr_slot; 31*34b4634aSjason u_int32_t cbr_offset; 32*34b4634aSjason u_int32_t cbr_size; 33*34b4634aSjason }; 34*34b4634aSjason 35*34b4634aSjason struct central_attach_args { 36*34b4634aSjason char *ca_name; 37*34b4634aSjason bus_space_tag_t ca_bustag; 38*34b4634aSjason struct central_reg *ca_reg; 39*34b4634aSjason int ca_node; 40*34b4634aSjason int ca_nreg; 41*34b4634aSjason }; 42*34b4634aSjason 43*34b4634aSjason struct central_range { 44*34b4634aSjason u_int32_t cspace; /* Client space */ 45*34b4634aSjason u_int32_t coffset; /* Client offset */ 46*34b4634aSjason u_int32_t pspace; /* Parent space */ 47*34b4634aSjason u_int32_t poffset; /* Parent offset */ 48*34b4634aSjason u_int32_t size; /* Size in bytes of this range */ 49*34b4634aSjason }; 50*34b4634aSjason 51*34b4634aSjason #define central_bus_map(t, slot, offset, sz, flags, hp) \ 52*34b4634aSjason bus_space_map(t, BUS_ADDR(slot, offset), sz, flags, hp) 53