1706f2543Smrg
2706f2543Smrg#ifndef _FBDEVHW_H_
3706f2543Smrg#define _FBDEVHW_H_
4706f2543Smrg
5706f2543Smrg#include "xf86str.h"
6706f2543Smrg#include "colormapst.h"
7706f2543Smrg
8706f2543Smrg#include <pciaccess.h>
9706f2543Smrg
10706f2543Smrg#define FBDEVHW_PACKED_PIXELS		0	/* Packed Pixels	*/
11706f2543Smrg#define FBDEVHW_PLANES			1	/* Non interleaved planes */
12706f2543Smrg#define FBDEVHW_INTERLEAVED_PLANES	2	/* Interleaved planes	*/
13706f2543Smrg#define FBDEVHW_TEXT			3	/* Text/attributes	*/
14706f2543Smrg#define FBDEVHW_VGA_PLANES		4	/* EGA/VGA planes       */
15706f2543Smrg
16706f2543Smrgextern _X_EXPORT Bool  fbdevHWGetRec(ScrnInfoPtr pScrn);
17706f2543Smrgextern _X_EXPORT void  fbdevHWFreeRec(ScrnInfoPtr pScrn);
18706f2543Smrg
19706f2543Smrgextern _X_EXPORT int   fbdevHWGetFD(ScrnInfoPtr pScrn);
20706f2543Smrg
21706f2543Smrgextern _X_EXPORT Bool  fbdevHWProbe(struct pci_device * pPci, char *device, char **namep);
22706f2543Smrgextern _X_EXPORT Bool  fbdevHWInit(ScrnInfoPtr pScrn, struct pci_device * pPci, char *device);
23706f2543Smrg
24706f2543Smrgextern _X_EXPORT char* fbdevHWGetName(ScrnInfoPtr pScrn);
25706f2543Smrgextern _X_EXPORT int   fbdevHWGetDepth(ScrnInfoPtr pScrn, int *fbbpp);
26706f2543Smrgextern _X_EXPORT int   fbdevHWGetLineLength(ScrnInfoPtr pScrn);
27706f2543Smrgextern _X_EXPORT int   fbdevHWGetType(ScrnInfoPtr pScrn);
28706f2543Smrgextern _X_EXPORT int   fbdevHWGetVidmem(ScrnInfoPtr pScrn);
29706f2543Smrg
30706f2543Smrgextern _X_EXPORT void* fbdevHWMapVidmem(ScrnInfoPtr pScrn);
31706f2543Smrgextern _X_EXPORT int   fbdevHWLinearOffset(ScrnInfoPtr pScrn);
32706f2543Smrgextern _X_EXPORT Bool  fbdevHWUnmapVidmem(ScrnInfoPtr pScrn);
33706f2543Smrgextern _X_EXPORT void* fbdevHWMapMMIO(ScrnInfoPtr pScrn);
34706f2543Smrgextern _X_EXPORT Bool  fbdevHWUnmapMMIO(ScrnInfoPtr pScrn);
35706f2543Smrg
36706f2543Smrgextern _X_EXPORT void  fbdevHWSetVideoModes(ScrnInfoPtr pScrn);
37706f2543Smrgextern _X_EXPORT DisplayModePtr fbdevHWGetBuildinMode(ScrnInfoPtr pScrn);
38706f2543Smrgextern _X_EXPORT void  fbdevHWUseBuildinMode(ScrnInfoPtr pScrn);
39706f2543Smrgextern _X_EXPORT Bool  fbdevHWModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
40706f2543Smrgextern _X_EXPORT void  fbdevHWSave(ScrnInfoPtr pScrn);
41706f2543Smrgextern _X_EXPORT void  fbdevHWRestore(ScrnInfoPtr pScrn);
42706f2543Smrg
43706f2543Smrgextern _X_EXPORT void  fbdevHWLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
44706f2543Smrg		 LOCO *colors, VisualPtr pVisual);
45706f2543Smrg
46706f2543Smrgextern _X_EXPORT ModeStatus fbdevHWValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags);
47706f2543Smrgextern _X_EXPORT Bool  fbdevHWSwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
48706f2543Smrgextern _X_EXPORT void  fbdevHWAdjustFrame(int scrnIndex, int x, int y, int flags);
49706f2543Smrgextern _X_EXPORT Bool  fbdevHWEnterVT(int scrnIndex, int flags);
50706f2543Smrgextern _X_EXPORT void  fbdevHWLeaveVT(int scrnIndex, int flags);
51706f2543Smrgextern _X_EXPORT void  fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mode, int flags);
52706f2543Smrg
53706f2543Smrgextern _X_EXPORT Bool  fbdevHWSaveScreen(ScreenPtr pScreen, int mode);
54706f2543Smrg
55706f2543Smrgextern _X_EXPORT xf86SwitchModeProc	*fbdevHWSwitchModeWeak(void);
56706f2543Smrgextern _X_EXPORT xf86AdjustFrameProc	*fbdevHWAdjustFrameWeak(void);
57706f2543Smrgextern _X_EXPORT xf86EnterVTProc	*fbdevHWEnterVTWeak(void);
58706f2543Smrgextern _X_EXPORT xf86LeaveVTProc	*fbdevHWLeaveVTWeak(void);
59706f2543Smrgextern _X_EXPORT xf86ValidModeProc	*fbdevHWValidModeWeak(void);
60706f2543Smrgextern _X_EXPORT xf86DPMSSetProc	*fbdevHWDPMSSetWeak(void);
61706f2543Smrgextern _X_EXPORT xf86LoadPaletteProc	*fbdevHWLoadPaletteWeak(void);
62706f2543Smrgextern _X_EXPORT SaveScreenProcPtr	fbdevHWSaveScreenWeak(void);
63706f2543Smrg
64706f2543Smrg#endif
65