First import
[xorg_rtime.git] / xorg-server-1.4 / hw / kdrive / fbdev / fbdev.h
blob9e322dacbe5c7627e1e5a07c727c9089900197fc
1 /*
2 * Copyright © 1999 Keith Packard
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that
7 * copyright notice and this permission notice appear in supporting
8 * documentation, and that the name of Keith Packard not be used in
9 * advertising or publicity pertaining to distribution of the software without
10 * specific, written prior permission. Keith Packard makes no
11 * representations about the suitability of this software for any purpose. It
12 * is provided "as is" without express or implied warranty.
14 * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16 * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20 * PERFORMANCE OF THIS SOFTWARE.
23 #ifndef _FBDEV_H_
24 #define _FBDEV_H_
25 #include <stdio.h>
26 #include <linux/fb.h>
27 #include <unistd.h>
28 #include <sys/mman.h>
29 #include "kdrive.h"
31 #ifdef RANDR
32 #include "randrstr.h"
33 #endif
35 typedef struct _fbdevPriv {
36 struct fb_var_screeninfo var;
37 struct fb_fix_screeninfo fix;
38 __u16 red[256];
39 __u16 green[256];
40 __u16 blue[256];
41 int fd;
42 char *fb;
43 char *fb_base;
44 } FbdevPriv;
46 typedef struct _fbdevScrPriv {
47 Rotation randr;
48 Bool shadow;
49 PixmapPtr pShadow;
50 } FbdevScrPriv;
52 extern KdCardFuncs fbdevFuncs;
53 extern char* fbdevDevicePath;
55 Bool
56 fbdevInitialize (KdCardInfo *card, FbdevPriv *priv);
58 Bool
59 fbdevCardInit (KdCardInfo *card);
61 Bool
62 fbdevScreenInit (KdScreenInfo *screen);
64 Bool
65 fbdevScreenInitialize (KdScreenInfo *screen, FbdevScrPriv *scrpriv);
67 Bool
68 fbdevInitScreen (ScreenPtr pScreen);
70 Bool
71 fbdevFinishInitScreen (ScreenPtr pScreen);
73 Bool
74 fbdevCreateResources (ScreenPtr pScreen);
76 void
77 fbdevPreserve (KdCardInfo *card);
79 Bool
80 fbdevEnable (ScreenPtr pScreen);
82 Bool
83 fbdevDPMS (ScreenPtr pScreen, int mode);
85 void
86 fbdevDisable (ScreenPtr pScreen);
88 void
89 fbdevRestore (KdCardInfo *card);
91 void
92 fbdevScreenFini (KdScreenInfo *screen);
94 void
95 fbdevCardFini (KdCardInfo *card);
97 void
98 fbdevGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs);
100 void
101 fbdevPutColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs);
103 Bool
104 fbdevMapFramebuffer (KdScreenInfo *screen);
106 void *
107 fbdevWindowLinear (ScreenPtr pScreen,
108 CARD32 row,
109 CARD32 offset,
110 int mode,
111 CARD32 *size,
112 void *closure);
114 void
115 fbdevSetScreenSizes (ScreenPtr pScreen);
117 Bool
118 fbdevUnmapFramebuffer (KdScreenInfo *screen);
120 Bool
121 fbdevSetShadow (ScreenPtr pScreen);
123 Bool
124 fbdevCreateColormap (ColormapPtr pmap);
126 #ifdef RANDR
127 Bool
128 fbdevRandRGetInfo (ScreenPtr pScreen, Rotation *rotations);
130 Bool
131 fbdevRandRSetConfig (ScreenPtr pScreen,
132 Rotation randr,
133 int rate,
134 RRScreenSizePtr pSize);
135 Bool
136 fbdevRandRInit (ScreenPtr pScreen);
138 #endif
140 #endif /* _FBDEV_H_ */