Annotation of sys/dev/ic/pcdisplayvar.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: pcdisplayvar.h,v 1.9 2007/02/11 20:29:22 miod Exp $ */
2: /* $NetBSD: pcdisplayvar.h,v 1.8 2000/01/25 02:44:03 ad Exp $ */
3:
4: /*
5: * Copyright (c) 1998
6: * Matthias Drochner. All rights reserved.
7: *
8: * Redistribution and use in source and binary forms, with or without
9: * modification, are permitted provided that the following conditions
10: * are met:
11: * 1. Redistributions of source code must retain the above copyright
12: * notice, this list of conditions and the following disclaimer.
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: *
17: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27: *
28: */
29:
30: struct pcdisplayscreen {
31: struct pcdisplay_handle *hdl;
32:
33: const struct wsscreen_descr *type;
34:
35: int active; /* currently displayed */
36: u_int16_t *mem; /* backing store for contents */
37:
38: int cursoron; /* cursor displayed? */
39: #ifdef PCDISPLAY_SOFTCURSOR
40: int cursortmp; /* glyph & attribute behind software cursor */
41: #endif
42: int vc_ccol, vc_crow; /* current cursor position */
43:
44: int dispoffset; /* offset of displayed area in video mem */
45: int visibleoffset;
46: };
47:
48: struct pcdisplay_handle {
49: bus_space_tag_t ph_iot, ph_memt;
50: bus_space_handle_t ph_ioh_6845, ph_memh;
51: };
52:
53: static inline u_int8_t _pcdisplay_6845_read(struct pcdisplay_handle *,
54: int);
55: static inline void _pcdisplay_6845_write(struct pcdisplay_handle *,
56: int, u_int8_t);
57:
58: static inline u_int8_t _pcdisplay_6845_read(ph, reg)
59: struct pcdisplay_handle *ph;
60: int reg;
61: {
62: bus_space_write_1(ph->ph_iot, ph->ph_ioh_6845, MC6845_INDEX, reg);
63: return (bus_space_read_1(ph->ph_iot, ph->ph_ioh_6845, MC6845_DATA));
64: }
65:
66: static inline void _pcdisplay_6845_write(ph, reg, val)
67: struct pcdisplay_handle *ph;
68: int reg;
69: u_int8_t val;
70: {
71: bus_space_write_1(ph->ph_iot, ph->ph_ioh_6845, MC6845_INDEX, reg);
72: bus_space_write_1(ph->ph_iot, ph->ph_ioh_6845, MC6845_DATA, val);
73: }
74:
75: #define pcdisplay_6845_read(ph, reg) \
76: _pcdisplay_6845_read(ph, offsetof(struct reg_mc6845, reg))
77: #define pcdisplay_6845_write(ph, reg, val) \
78: _pcdisplay_6845_write(ph, offsetof(struct reg_mc6845, reg), val)
79:
80: void pcdisplay_cursor_init(struct pcdisplayscreen *, int);
81: void pcdisplay_cursor_reset(struct pcdisplayscreen *);
82: void pcdisplay_cursor(void *, int, int, int);
83: #if 0
84: unsigned int pcdisplay_mapchar_simple(void *, int);
85: #endif
86: int pcdisplay_mapchar(void *, int, unsigned int *);
87: void pcdisplay_putchar(void *, int, int, u_int, long);
88: struct wsdisplay_charcell;
89: int pcdisplay_getchar(void *, int, int, struct wsdisplay_charcell *);
90: void pcdisplay_copycols(void *, int, int, int,int);
91: void pcdisplay_erasecols(void *, int, int, int, long);
92: void pcdisplay_copyrows(void *, int, int, int);
93: void pcdisplay_eraserows(void *, int, int, long);
CVSweb