[BACK]Return to pcdisplayvar.h CVS log [TXT][DIR] Up to [local] / sys / dev / ic

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