105b261ecSmrg
205b261ecSmrg#ifndef _FBDEVHW_H_
305b261ecSmrg#define _FBDEVHW_H_
405b261ecSmrg
505b261ecSmrg#include "xf86str.h"
605b261ecSmrg#include "colormapst.h"
705b261ecSmrg
835c4bbdfSmrg#define FBDEVHW_PACKED_PIXELS		0       /* Packed Pixels        */
935c4bbdfSmrg#define FBDEVHW_PLANES			1       /* Non interleaved planes */
1035c4bbdfSmrg#define FBDEVHW_INTERLEAVED_PLANES	2       /* Interleaved planes   */
1135c4bbdfSmrg#define FBDEVHW_TEXT			3       /* Text/attributes      */
1235c4bbdfSmrg#define FBDEVHW_VGA_PLANES		4       /* EGA/VGA planes       */
134642e01fSmrg
1435c4bbdfSmrgextern _X_EXPORT Bool fbdevHWGetRec(ScrnInfoPtr pScrn);
1535c4bbdfSmrgextern _X_EXPORT void fbdevHWFreeRec(ScrnInfoPtr pScrn);
1605b261ecSmrg
1735c4bbdfSmrgextern _X_EXPORT int fbdevHWGetFD(ScrnInfoPtr pScrn);
186747b715Smrg
1935c4bbdfSmrgextern _X_EXPORT Bool fbdevHWProbe(struct pci_device *pPci, char *device,
2035c4bbdfSmrg                                   char **namep);
2135c4bbdfSmrgextern _X_EXPORT Bool fbdevHWInit(ScrnInfoPtr pScrn, struct pci_device *pPci,
2235c4bbdfSmrg                                  char *device);
236747b715Smrg
2435c4bbdfSmrgextern _X_EXPORT char *fbdevHWGetName(ScrnInfoPtr pScrn);
2535c4bbdfSmrgextern _X_EXPORT int fbdevHWGetDepth(ScrnInfoPtr pScrn, int *fbbpp);
2635c4bbdfSmrgextern _X_EXPORT int fbdevHWGetLineLength(ScrnInfoPtr pScrn);
2735c4bbdfSmrgextern _X_EXPORT int fbdevHWGetType(ScrnInfoPtr pScrn);
2835c4bbdfSmrgextern _X_EXPORT int fbdevHWGetVidmem(ScrnInfoPtr pScrn);
296747b715Smrg
3035c4bbdfSmrgextern _X_EXPORT void *fbdevHWMapVidmem(ScrnInfoPtr pScrn);
3135c4bbdfSmrgextern _X_EXPORT int fbdevHWLinearOffset(ScrnInfoPtr pScrn);
3235c4bbdfSmrgextern _X_EXPORT Bool fbdevHWUnmapVidmem(ScrnInfoPtr pScrn);
3335c4bbdfSmrgextern _X_EXPORT void *fbdevHWMapMMIO(ScrnInfoPtr pScrn);
3435c4bbdfSmrgextern _X_EXPORT Bool fbdevHWUnmapMMIO(ScrnInfoPtr pScrn);
356747b715Smrg
3635c4bbdfSmrgextern _X_EXPORT void fbdevHWSetVideoModes(ScrnInfoPtr pScrn);
376747b715Smrgextern _X_EXPORT DisplayModePtr fbdevHWGetBuildinMode(ScrnInfoPtr pScrn);
3835c4bbdfSmrgextern _X_EXPORT void fbdevHWUseBuildinMode(ScrnInfoPtr pScrn);
3935c4bbdfSmrgextern _X_EXPORT Bool fbdevHWModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
4035c4bbdfSmrgextern _X_EXPORT void fbdevHWSave(ScrnInfoPtr pScrn);
4135c4bbdfSmrgextern _X_EXPORT void fbdevHWRestore(ScrnInfoPtr pScrn);
426747b715Smrg
4335c4bbdfSmrgextern _X_EXPORT void fbdevHWLoadPalette(ScrnInfoPtr pScrn, int numColors,
4435c4bbdfSmrg                                         int *indices, LOCO * colors,
4535c4bbdfSmrg                                         VisualPtr pVisual);
4605b261ecSmrg
4735c4bbdfSmrgextern _X_EXPORT ModeStatus fbdevHWValidMode(ScrnInfoPtr pScrn, DisplayModePtr mode,
4835c4bbdfSmrg                                             Bool verbose, int flags);
4935c4bbdfSmrgextern _X_EXPORT Bool fbdevHWSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
5035c4bbdfSmrgextern _X_EXPORT void fbdevHWAdjustFrame(ScrnInfoPtr pScrn, int x, int y);
5135c4bbdfSmrgextern _X_EXPORT Bool fbdevHWEnterVT(ScrnInfoPtr pScrn);
5235c4bbdfSmrgextern _X_EXPORT void fbdevHWLeaveVT(ScrnInfoPtr pScrn);
5335c4bbdfSmrgextern _X_EXPORT void fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mode, int flags);
546747b715Smrg
5535c4bbdfSmrgextern _X_EXPORT Bool fbdevHWSaveScreen(ScreenPtr pScreen, int mode);
566747b715Smrg
5735c4bbdfSmrgextern _X_EXPORT xf86SwitchModeProc *fbdevHWSwitchModeWeak(void);
5835c4bbdfSmrgextern _X_EXPORT xf86AdjustFrameProc *fbdevHWAdjustFrameWeak(void);
5935c4bbdfSmrgextern _X_EXPORT xf86EnterVTProc *fbdevHWEnterVTWeak(void);
6035c4bbdfSmrgextern _X_EXPORT xf86LeaveVTProc *fbdevHWLeaveVTWeak(void);
6135c4bbdfSmrgextern _X_EXPORT xf86ValidModeProc *fbdevHWValidModeWeak(void);
6235c4bbdfSmrgextern _X_EXPORT xf86DPMSSetProc *fbdevHWDPMSSetWeak(void);
6335c4bbdfSmrgextern _X_EXPORT xf86LoadPaletteProc *fbdevHWLoadPaletteWeak(void);
6435c4bbdfSmrgextern _X_EXPORT SaveScreenProcPtr fbdevHWSaveScreenWeak(void);
6505b261ecSmrg
6605b261ecSmrg#endif
67