Annotation of sys/arch/sparc64/dev/fhcvar.h, Revision 1.1.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