Annotation of sys/arch/sparc64/dev/fhcvar.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: fhcvar.h,v 1.8 2004/10/01 18:18:49 jason Exp $ */
! 2:
! 3: /*
! 4: * Copyright (c) 2004 Jason L. Wright (jason@thought.net).
! 5: * All rights reserved.
! 6: *
! 7: * Redistribution and use in source and binary forms, with or without
! 8: * modification, are permitted provided that the following conditions
! 9: * are met:
! 10: * 1. Redistributions of source code must retain the above copyright
! 11: * notice, this list of conditions and the following disclaimer.
! 12: * 2. Redistributions in binary form must reproduce the above copyright
! 13: * notice, this list of conditions and the following disclaimer in the
! 14: * documentation and/or other materials provided with the distribution.
! 15: *
! 16: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
! 17: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
! 18: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
! 19: * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
! 20: * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
! 21: * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
! 22: * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
! 23: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
! 24: * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
! 25: * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
! 26: * POSSIBILITY OF SUCH DAMAGE.
! 27: */
! 28:
! 29: struct fhc_reg {
! 30: u_int32_t fbr_slot;
! 31: u_int32_t fbr_offset;
! 32: u_int32_t fbr_size;
! 33: };
! 34:
! 35: struct fhc_range {
! 36: u_int32_t cspace; /* Client space */
! 37: u_int32_t coffset; /* Client offset */
! 38: u_int32_t pspace; /* Parent space */
! 39: u_int32_t poffset; /* Parent offset */
! 40: u_int32_t size; /* Size in bytes of this range */
! 41: };
! 42:
! 43: struct fhc_softc {
! 44: struct device sc_dv;
! 45: int sc_node;
! 46: int sc_is_central; /* parent is central */
! 47: int sc_board;
! 48: u_int32_t sc_ign;
! 49: bus_space_tag_t sc_bt;
! 50: bus_space_tag_t sc_cbt;
! 51: int sc_nrange;
! 52: struct fhc_range *sc_range;
! 53: bus_space_handle_t sc_preg; /* internal regs */
! 54: bus_space_handle_t sc_ireg; /* ign regs */
! 55: bus_space_handle_t sc_freg; /* fanfail regs */
! 56: bus_space_handle_t sc_sreg; /* system regs */
! 57: bus_space_handle_t sc_ureg; /* uart regs */
! 58: bus_space_handle_t sc_treg; /* tod regs */
! 59: struct blink_led sc_blink;
! 60: };
! 61:
! 62: void fhc_attach(struct fhc_softc *);
! 63: int fhc_get_string(int, char *, char **);
! 64:
! 65: struct fhc_attach_args {
! 66: bus_space_tag_t fa_bustag;
! 67: char *fa_name;
! 68: int *fa_intr;
! 69: struct fhc_reg *fa_reg;
! 70: u_int32_t *fa_promvaddrs;
! 71: int fa_node;
! 72: int fa_nreg;
! 73: int fa_nintr;
! 74: int fa_npromvaddrs;
! 75: };
! 76:
! 77: #define fhc_bus_map(t, slot, offset, sz, flags, hp) \
! 78: bus_space_map(t, BUS_ADDR(slot, offset), sz, flags, hp)
CVSweb