1 /* $NetBSD: ffbvar.h,v 1.1 2003/05/23 06:51:16 petrov Exp $ */ 2 /* $OpenBSD: creatorvar.h,v 1.6 2002/07/30 19:48:15 jason Exp $ */ 3 4 /* 5 * Copyright (c) 2002 Jason L. Wright (jason@thought.net), 6 * Federico G. Schwindt (fgsch@openbsd.org) 7 * All rights reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 2. Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 3. All advertising materials mentioning features or use of this software 18 * must display the following acknowledgement: 19 * This product includes software developed by Jason L. Wright 20 * 4. The name of the author may not be used to endorse or promote products 21 * derived from this software without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 24 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 26 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 27 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 29 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 31 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 32 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 * POSSIBILITY OF SUCH DAMAGE. 34 */ 35 36 #define FFB_CREATOR 0 37 #define FFB_AFB 1 38 39 #define FFB_CFFLAG_NOACCEL 0x1 40 41 struct ffb_softc { 42 struct device sc_dv; 43 bus_space_tag_t sc_bt; 44 bus_space_handle_t sc_pixel_h; 45 bus_space_handle_t sc_fbc_h; 46 bus_addr_t sc_addrs[FFB_NREGS]; 47 bus_size_t sc_sizes[FFB_NREGS]; 48 int sc_height, sc_width, sc_linebytes, sc_depth; 49 int sc_nscreens, sc_nreg; 50 int sc_console; 51 int sc_node; 52 int sc_type; 53 u_int sc_mode; 54 struct rasops_info sc_rasops; 55 int32_t sc_fifo_cache, sc_fg_cache; 56 }; 57 58 #define FBC_WRITE(sc,r,v) \ 59 bus_space_write_4((sc)->sc_bt, (sc)->sc_fbc_h, (r), (v)) 60 #define FBC_READ(sc,r) \ 61 bus_space_read_4((sc)->sc_bt, (sc)->sc_fbc_h, (r)) 62 63 void ffb_attach(struct ffb_softc *); 64