1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
/* $OpenBSD: stivar.h,v 1.23 2007/01/12 22:02:33 miod Exp $ */
/*
* Copyright (c) 2000-2003 Michael Shalayeff
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _IC_STIVAR_H_
#define _IC_STIVAR_H_
struct sti_softc;
struct sti_screen {
struct sti_softc *scr_main; /* may be NULL if early console */
int scr_devtype;
bus_space_tag_t iot, memt;
bus_space_handle_t romh;
bus_addr_t *bases;
bus_addr_t fbaddr;
bus_size_t fblen;
int scr_bpp;
struct sti_dd scr_dd; /* in word format */
struct sti_font scr_curfont;
struct sti_cfg scr_cfg;
struct sti_ecfg scr_ecfg;
void *scr_romfont; /* ROM font copy, either in memory... */
u_int scr_fontmaxcol; /* ...or in off-screen frame buffer */
u_int scr_fontbase;
u_int8_t scr_rcmap[STI_NCMAP],
scr_gcmap[STI_NCMAP],
scr_bcmap[STI_NCMAP];
vaddr_t scr_code;
sti_init_t init;
sti_mgmt_t mgmt;
sti_unpmv_t unpmv;
sti_blkmv_t blkmv;
sti_test_t test;
sti_exhdl_t exhdl;
sti_inqconf_t inqconf;
sti_scment_t scment;
sti_dmac_t dmac;
sti_flowc_t flowc;
sti_utiming_t utiming;
sti_pmgr_t pmgr;
sti_util_t util;
u_int16_t fbheight, fbwidth, oheight, owidth;
u_int8_t name[STI_DEVNAME_LEN];
/* wsdisplay information */
struct wsscreen_descr scr_wsd;
struct wsscreen_descr *scr_scrlist[1];
struct wsscreen_list scr_screenlist;
};
struct sti_softc {
struct device sc_dev;
void *sc_ih;
u_int sc_flags;
#define STI_TEXTMODE 0x0001
#define STI_CLEARSCR 0x0002
#define STI_CONSOLE 0x0004
#define STI_ATTACHED 0x0008
#define STI_ROM_ENABLED 0x0010
int sc_nscreens;
bus_space_tag_t iot, memt;
bus_space_handle_t romh;
bus_addr_t bases[STI_REGION_MAX];
struct sti_screen *sc_scr;
u_int sc_wsmode;
/* optional, required for PCI */
void (*sc_enable_rom)(struct sti_softc *);
void (*sc_disable_rom)(struct sti_softc *);
};
int sti_attach_common(struct sti_softc *sc, u_int codebase);
void sti_clear(struct sti_screen *);
int sti_cnattach(struct sti_screen *, bus_space_tag_t, bus_addr_t *, u_int);
void sti_describe(struct sti_softc *);
void sti_end_attach(void *);
u_int sti_rom_size(bus_space_tag_t, bus_space_handle_t);
#endif /* _IC_STIVAR_H_ */
|