71 lines
1.7 KiB
C
71 lines
1.7 KiB
C
/*
|
|
* Generic card driving functions.
|
|
* Essentially, cascades calls to fbdev and vesa to initialize cards that
|
|
* do not have hardware-specific routines yet. Copied from the ati driver.
|
|
*
|
|
* Copyright (c) 2004 Brent Cook <busterb@mail.utexas.edu>
|
|
*
|
|
* This code is licensed under the GPL. See the file COPYING in the root
|
|
* directory of the sources for details.
|
|
*/
|
|
|
|
#ifndef _BACKEND_H_
|
|
#define _BACKEND_H_
|
|
#include "kdrive.h"
|
|
|
|
#ifdef KDRIVEFBDEV
|
|
#include <fbdev.h>
|
|
#endif
|
|
#ifdef KDRIVEVESA
|
|
#include <vesa.h>
|
|
#endif
|
|
|
|
typedef enum _BackendType {VESA, FBDEV} BackendType;
|
|
|
|
typedef struct _BackendInfo {
|
|
// backend info
|
|
BackendType type;
|
|
|
|
// backend internal structures
|
|
union {
|
|
#ifdef KDRIVEFBDEV
|
|
FbdevPriv fbdev;
|
|
#endif
|
|
#ifdef KDRIVEVESA
|
|
VesaCardPrivRec vesa;
|
|
#endif
|
|
} priv;
|
|
|
|
// pointers to helper functions for this backend
|
|
void (*cardfini)(KdCardInfo *);
|
|
void (*scrfini)(KdScreenInfo *);
|
|
Bool (*initScreen)(ScreenPtr);
|
|
Bool (*finishInitScreen)(ScreenPtr pScreen);
|
|
Bool (*createRes)(ScreenPtr);
|
|
void (*preserve)(KdCardInfo *);
|
|
void (*restore)(KdCardInfo *);
|
|
Bool (*dpms)(ScreenPtr, int);
|
|
Bool (*enable)(ScreenPtr);
|
|
void (*disable)(ScreenPtr);
|
|
void (*getColors)(ScreenPtr, int, int, xColorItem *);
|
|
void (*putColors)(ScreenPtr, int, int, xColorItem *);
|
|
} BackendInfo;
|
|
|
|
typedef union _BackendScreen {
|
|
#ifdef KDRIVEFBDEV
|
|
FbdevScrPriv fbdev;
|
|
#endif
|
|
#ifdef KDRIVEVESA
|
|
VesaScreenPrivRec vesa;
|
|
#endif
|
|
} BackendScreen;
|
|
|
|
Bool
|
|
backendInitialize(KdCardInfo *card, BackendInfo *backend);
|
|
|
|
Bool
|
|
backendScreenInitialize(KdScreenInfo *screen, BackendScreen *backendScreen,
|
|
BackendInfo *backendCard);
|
|
|
|
#endif
|