118 lines
3.1 KiB
C
118 lines
3.1 KiB
C
/*
|
|
* Copyright © 1999 Keith Packard
|
|
*
|
|
* Permission to use, copy, modify, distribute, and sell this software and its
|
|
* documentation for any purpose is hereby granted without fee, provided that
|
|
* the above copyright notice appear in all copies and that both that
|
|
* copyright notice and this permission notice appear in supporting
|
|
* documentation, and that the name of Keith Packard not be used in
|
|
* advertising or publicity pertaining to distribution of the software without
|
|
* specific, written prior permission. Keith Packard makes no
|
|
* representations about the suitability of this software for any purpose. It
|
|
* is provided "as is" without express or implied warranty.
|
|
*
|
|
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
|
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
* PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
#ifndef _CHIPS_H_
|
|
#define _CHIPS_H_
|
|
#include <vesa.h>
|
|
|
|
/*
|
|
* offset from ioport beginning
|
|
*/
|
|
|
|
#define HIQV
|
|
#ifdef HIQV
|
|
#define CHIPS_MMIO_BASE(c) ((c)->vesa.fb_phys + 0x400000)
|
|
#else
|
|
#define CHIPS_MMIO_BASE(c) ((c)->vesa.fb_phys + 0x200000)
|
|
#endif
|
|
#define CHIPS_MMIO_SIZE(c) (0x20000)
|
|
|
|
typedef volatile CARD8 VOL8;
|
|
typedef volatile CARD16 VOL16;
|
|
typedef volatile CARD32 VOL32;
|
|
|
|
typedef struct _chipsSave {
|
|
int dummy;
|
|
} ChipsSave;
|
|
|
|
typedef struct _chipsCardInfo {
|
|
VesaCardPrivRec vesa;
|
|
CARD32 *window;
|
|
Bool mmio;
|
|
ChipsSave save;
|
|
} ChipsCardInfo;
|
|
|
|
#define getChipsCardInfo(kd) ((ChipsCardInfo *) ((kd)->card->driver))
|
|
#define chipsCardInfo(kd) ChipsCardInfo *chipsc = getChipsCardInfo(kd)
|
|
|
|
typedef struct _chipsCursor {
|
|
int width, height;
|
|
int xhot, yhot;
|
|
Bool has_cursor;
|
|
CursorPtr pCursor;
|
|
Pixel source, mask;
|
|
} ChipsCursor;
|
|
|
|
#define CHIPS_CURSOR_WIDTH 64
|
|
#define CHIPS_CURSOR_HEIGHT 64
|
|
|
|
typedef struct _chipsScreenInfo {
|
|
VesaScreenPrivRec vesa;
|
|
CARD8 *mmio_base;
|
|
CARD8 *cursor_base;
|
|
CARD8 *screen;
|
|
CARD8 *off_screen;
|
|
int off_screen_size;
|
|
ChipsCursor cursor;
|
|
KaaScreenInfoRec kaa;
|
|
} ChipsScreenInfo;
|
|
|
|
#define getChipsScreenInfo(kd) ((ChipsScreenInfo *) ((kd)->screen->driver))
|
|
#define chipsScreenInfo(kd) ChipsScreenInfo *chipss = getChipsScreenInfo(kd)
|
|
|
|
Bool
|
|
chipsDrawInit (ScreenPtr pScreen);
|
|
|
|
void
|
|
chipsDrawEnable (ScreenPtr pScreen);
|
|
|
|
void
|
|
chipsDrawDisable (ScreenPtr pScreen);
|
|
|
|
void
|
|
chipsDrawFini (ScreenPtr pScreen);
|
|
|
|
CARD8
|
|
chipsReadXR (ChipsScreenInfo *chipsc, CARD8 index);
|
|
|
|
void
|
|
chipsWriteXR (ChipsScreenInfo *chipsc, CARD8 index, CARD8 value);
|
|
|
|
Bool
|
|
chipsCursorInit (ScreenPtr pScreen);
|
|
|
|
void
|
|
chipsCursorEnable (ScreenPtr pScreen);
|
|
|
|
void
|
|
chipsCursorDisable (ScreenPtr pScreen);
|
|
|
|
void
|
|
chipsCursorFini (ScreenPtr pScreen);
|
|
|
|
void
|
|
chipsRecolorCursor (ScreenPtr pScreen, int ndef, xColorItem *pdef);
|
|
|
|
extern KdCardFuncs chipsFuncs;
|
|
|
|
#endif /* _CHIPS_H_ */
|