Subversion Repositories Kolibri OS

Rev

Rev 6102 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6102 Rev 6936
Line 1... Line 1...
1
#ifndef _LINUX_FB_H
1
#ifndef _LINUX_FB_H
2
#define _LINUX_FB_H
2
#define _LINUX_FB_H
Line 3... Line 3...
3
 
3
 
4
#include 
4
#include 
Line 5... Line -...
5
#include 
-
 
6
 
-
 
7
struct dentry;
-
 
8
 
-
 
9
/* Definitions of frame buffers						*/
-
 
10
 
-
 
11
#define FB_MAX			32	/* sufficient for now */
-
 
12
 
-
 
13
/* ioctls
-
 
14
   0x46 is 'F'								*/
-
 
15
#define FBIOGET_VSCREENINFO	0x4600
-
 
16
#define FBIOPUT_VSCREENINFO	0x4601
-
 
17
#define FBIOGET_FSCREENINFO	0x4602
-
 
18
#define FBIOGETCMAP		0x4604
-
 
19
#define FBIOPUTCMAP		0x4605
-
 
20
#define FBIOPAN_DISPLAY		0x4606
5
#include 
21
#ifdef __KERNEL__
-
 
22
#define FBIO_CURSOR            _IOWR('F', 0x08, struct fb_cursor_user)
-
 
23
#else
-
 
24
#define FBIO_CURSOR            _IOWR('F', 0x08, struct fb_cursor)
-
 
25
#endif
-
 
26
/* 0x4607-0x460B are defined below */
-
 
27
/* #define FBIOGET_MONITORSPEC	0x460C */
-
 
28
/* #define FBIOPUT_MONITORSPEC	0x460D */
-
 
29
/* #define FBIOSWITCH_MONIBIT	0x460E */
-
 
30
#define FBIOGET_CON2FBMAP	0x460F
-
 
31
#define FBIOPUT_CON2FBMAP	0x4610
-
 
32
#define FBIOBLANK		0x4611		/* arg: 0 or vesa level + 1 */
-
 
33
#define FBIOGET_VBLANK		_IOR('F', 0x12, struct fb_vblank)
-
 
34
#define FBIO_ALLOC              0x4613
-
 
35
#define FBIO_FREE               0x4614
-
 
36
#define FBIOGET_GLYPH           0x4615
-
 
37
#define FBIOGET_HWCINFO         0x4616
-
 
38
#define FBIOPUT_MODEINFO        0x4617
-
 
39
#define FBIOGET_DISPINFO        0x4618
-
 
40
#define FBIO_WAITFORVSYNC	_IOW('F', 0x20, __u32)
-
 
41
 
-
 
42
#define FB_TYPE_PACKED_PIXELS		0	/* Packed Pixels	*/
-
 
43
#define FB_TYPE_PLANES              1   /* Non interleaved planes */
-
 
44
#define FB_TYPE_INTERLEAVED_PLANES	2	/* Interleaved planes	*/
-
 
45
#define FB_TYPE_TEXT                3   /* Text/attributes  */
-
 
46
#define FB_TYPE_VGA_PLANES          4   /* EGA/VGA planes   */
-
 
47
 
-
 
48
#define FB_AUX_TEXT_MDA             0   /* Monochrome text */
-
 
49
#define FB_AUX_TEXT_CGA             1   /* CGA/EGA/VGA Color text */
-
 
50
#define FB_AUX_TEXT_S3_MMIO         2   /* S3 MMIO fasttext */
-
 
51
#define FB_AUX_TEXT_MGA_STEP16      3   /* MGA Millenium I: text, attr, 14 reserved bytes */
-
 
52
#define FB_AUX_TEXT_MGA_STEP8       4   /* other MGAs:      text, attr,  6 reserved bytes */
-
 
53
#define FB_AUX_TEXT_SVGA_GROUP      8   /* 8-15: SVGA tileblit compatible modes */
-
 
54
#define FB_AUX_TEXT_SVGA_MASK       7   /* lower three bits says step */
-
 
55
#define FB_AUX_TEXT_SVGA_STEP2      8   /* SVGA text mode:  text, attr */
-
 
56
#define FB_AUX_TEXT_SVGA_STEP4      9   /* SVGA text mode:  text, attr,  2 reserved bytes */
-
 
57
#define FB_AUX_TEXT_SVGA_STEP8      10  /* SVGA text mode:  text, attr,  6 reserved bytes */
-
 
58
#define FB_AUX_TEXT_SVGA_STEP16     11  /* SVGA text mode:  text, attr, 14 reserved bytes */
-
 
59
#define FB_AUX_TEXT_SVGA_LAST       15  /* reserved up to 15 */
-
 
60
 
-
 
61
#define FB_AUX_VGA_PLANES_VGA4		0	/* 16 color planes (EGA/VGA) */
-
 
62
#define FB_AUX_VGA_PLANES_CFB4		1	/* CFB4 in planes (VGA) */
-
 
63
#define FB_AUX_VGA_PLANES_CFB8		2	/* CFB8 in planes (VGA) */
-
 
64
 
-
 
65
#define FB_VISUAL_MONO01            0   /* Monochr. 1=Black 0=White */
-
 
66
#define FB_VISUAL_MONO10            1   /* Monochr. 1=White 0=Black */
-
 
67
#define FB_VISUAL_TRUECOLOR         2   /* True color   */
-
 
68
#define FB_VISUAL_PSEUDOCOLOR		3	/* Pseudo color (like atari) */
-
 
69
#define FB_VISUAL_DIRECTCOLOR		4	/* Direct color */
-
 
70
#define FB_VISUAL_STATIC_PSEUDOCOLOR	5	/* Pseudo color readonly */
-
 
71
 
-
 
72
#define FB_ACCEL_NONE               0   /* no hardware accelerator  */
-
 
73
#define FB_ACCEL_ATARIBLITT         1   /* Atari Blitter        */
-
 
74
#define FB_ACCEL_AMIGABLITT         2   /* Amiga Blitter                */
-
 
75
#define FB_ACCEL_S3_TRIO64          3   /* Cybervision64 (S3 Trio64)    */
-
 
76
#define FB_ACCEL_NCR_77C32BLT       4   /* RetinaZ3 (NCR 77C32BLT)      */
-
 
77
#define FB_ACCEL_S3_VIRGE           5   /* Cybervision64/3D (S3 ViRGE)  */
-
 
78
#define FB_ACCEL_ATI_MACH64GX       6   /* ATI Mach 64GX family     */
-
 
79
#define FB_ACCEL_DEC_TGA            7   /* DEC 21030 TGA        */
-
 
80
#define FB_ACCEL_ATI_MACH64CT       8   /* ATI Mach 64CT family     */
-
 
81
#define FB_ACCEL_ATI_MACH64VT       9   /* ATI Mach 64CT family VT class */
-
 
82
#define FB_ACCEL_ATI_MACH64GT       10  /* ATI Mach 64CT family GT class */
-
 
83
#define FB_ACCEL_SUN_CREATOR        11  /* Sun Creator/Creator3D    */
-
 
84
#define FB_ACCEL_SUN_CGSIX          12  /* Sun cg6          */
-
 
85
#define FB_ACCEL_SUN_LEO            13  /* Sun leo/zx           */
-
 
86
#define FB_ACCEL_IMS_TWINTURBO      14  /* IMS Twin Turbo       */
-
 
87
#define FB_ACCEL_3DLABS_PERMEDIA2   15  /* 3Dlabs Permedia 2        */
-
 
88
#define FB_ACCEL_MATROX_MGA2064W    16  /* Matrox MGA2064W (Millenium)  */
-
 
89
#define FB_ACCEL_MATROX_MGA1064SG   17  /* Matrox MGA1064SG (Mystique)  */
-
 
90
#define FB_ACCEL_MATROX_MGA2164W    18  /* Matrox MGA2164W (Millenium II) */
-
 
91
#define FB_ACCEL_MATROX_MGA2164W_AGP 19	/* Matrox MGA2164W (Millenium II) */
-
 
92
#define FB_ACCEL_MATROX_MGAG100     20  /* Matrox G100 (Productiva G100) */
-
 
93
#define FB_ACCEL_MATROX_MGAG200     21  /* Matrox G200 (Myst, Mill, ...) */
-
 
94
#define FB_ACCEL_SUN_CG14           22  /* Sun cgfourteen        */
-
 
95
#define FB_ACCEL_SUN_BWTWO          23  /* Sun bwtwo            */
-
 
96
#define FB_ACCEL_SUN_CGTHREE        24  /* Sun cgthree          */
-
 
97
#define FB_ACCEL_SUN_TCX            25  /* Sun tcx          */
-
 
98
#define FB_ACCEL_MATROX_MGAG400     26  /* Matrox G400          */
-
 
99
#define FB_ACCEL_NV3                27  /* nVidia RIVA 128              */
-
 
100
#define FB_ACCEL_NV4                28  /* nVidia RIVA TNT      */
-
 
101
#define FB_ACCEL_NV5                29  /* nVidia RIVA TNT2     */
-
 
102
#define FB_ACCEL_CT_6555x           30  /* C&T 6555x            */
-
 
103
#define FB_ACCEL_3DFX_BANSHEE       31  /* 3Dfx Banshee         */
-
 
104
#define FB_ACCEL_ATI_RAGE128        32  /* ATI Rage128 family       */
-
 
105
#define FB_ACCEL_IGS_CYBER2000      33  /* CyberPro 2000        */
-
 
106
#define FB_ACCEL_IGS_CYBER2010      34  /* CyberPro 2010        */
-
 
107
#define FB_ACCEL_IGS_CYBER5000      35  /* CyberPro 5000        */
-
 
108
#define FB_ACCEL_SIS_GLAMOUR        36  /* SiS 300/630/540              */
-
 
109
#define FB_ACCEL_3DLABS_PERMEDIA3   37  /* 3Dlabs Permedia 3        */
-
 
110
#define FB_ACCEL_ATI_RADEON         38  /* ATI Radeon family        */
-
 
111
#define FB_ACCEL_I810               39      /* Intel 810/815                */
-
 
112
#define FB_ACCEL_SIS_GLAMOUR_2      40  /* SiS 315, 650, 740        */
-
 
113
#define FB_ACCEL_SIS_XABRE          41  /* SiS 330 ("Xabre")        */
-
 
114
#define FB_ACCEL_I830               42      /* Intel 830M/845G/85x/865G     */
-
 
115
#define FB_ACCEL_NV_10              43      /* nVidia Arch 10               */
-
 
116
#define FB_ACCEL_NV_20              44      /* nVidia Arch 20               */
-
 
117
#define FB_ACCEL_NV_30              45      /* nVidia Arch 30               */
-
 
118
#define FB_ACCEL_NV_40              46      /* nVidia Arch 40               */
-
 
119
#define FB_ACCEL_XGI_VOLARI_V       47  /* XGI Volari V3XT, V5, V8      */
-
 
120
#define FB_ACCEL_XGI_VOLARI_Z       48  /* XGI Volari Z7                */
-
 
121
#define FB_ACCEL_OMAP1610           49  /* TI OMAP16xx                  */
-
 
122
#define FB_ACCEL_TRIDENT_TGUI       50  /* Trident TGUI         */
-
 
123
#define FB_ACCEL_TRIDENT_3DIMAGE    51  /* Trident 3DImage      */
-
 
124
#define FB_ACCEL_TRIDENT_BLADE3D    52  /* Trident Blade3D      */
-
 
125
#define FB_ACCEL_TRIDENT_BLADEXP    53  /* Trident BladeXP      */
-
 
126
#define FB_ACCEL_CIRRUS_ALPINE      53  /* Cirrus Logic 543x/544x/5480  */
-
 
127
#define FB_ACCEL_NEOMAGIC_NM2070    90  /* NeoMagic NM2070              */
-
 
128
#define FB_ACCEL_NEOMAGIC_NM2090    91  /* NeoMagic NM2090              */
-
 
129
#define FB_ACCEL_NEOMAGIC_NM2093    92  /* NeoMagic NM2093              */
-
 
130
#define FB_ACCEL_NEOMAGIC_NM2097    93  /* NeoMagic NM2097              */
-
 
131
#define FB_ACCEL_NEOMAGIC_NM2160    94  /* NeoMagic NM2160              */
-
 
132
#define FB_ACCEL_NEOMAGIC_NM2200    95  /* NeoMagic NM2200              */
-
 
133
#define FB_ACCEL_NEOMAGIC_NM2230    96  /* NeoMagic NM2230              */
-
 
134
#define FB_ACCEL_NEOMAGIC_NM2360    97  /* NeoMagic NM2360              */
-
 
135
#define FB_ACCEL_NEOMAGIC_NM2380    98  /* NeoMagic NM2380              */
-
 
136
#define FB_ACCEL_PXA3XX             99  /* PXA3xx           */
-
 
137
 
-
 
138
#define FB_ACCEL_SAVAGE4            0x80    /* S3 Savage4                   */
-
 
139
#define FB_ACCEL_SAVAGE3D           0x81   /* S3 Savage3D                  */
-
 
140
#define FB_ACCEL_SAVAGE3D_MV        0x82   /* S3 Savage3D-MV               */
-
 
141
#define FB_ACCEL_SAVAGE2000         0x83   /* S3 Savage2000                */
-
 
142
#define FB_ACCEL_SAVAGE_MX_MV       0x84   /* S3 Savage/MX-MV              */
-
 
143
#define FB_ACCEL_SAVAGE_MX          0x85   /* S3 Savage/MX                 */
-
 
144
#define FB_ACCEL_SAVAGE_IX_MV       0x86   /* S3 Savage/IX-MV              */
-
 
145
#define FB_ACCEL_SAVAGE_IX          0x87   /* S3 Savage/IX                 */
-
 
146
#define FB_ACCEL_PROSAVAGE_PM       0x88   /* S3 ProSavage PM133           */
-
 
147
#define FB_ACCEL_PROSAVAGE_KM       0x89   /* S3 ProSavage KM133           */
-
 
148
#define FB_ACCEL_S3TWISTER_P        0x8a   /* S3 Twister                   */
-
 
149
#define FB_ACCEL_S3TWISTER_K        0x8b   /* S3 TwisterK                  */
-
 
150
#define FB_ACCEL_SUPERSAVAGE        0x8c    /* S3 Supersavage               */
-
 
151
#define FB_ACCEL_PROSAVAGE_DDR      0x8d   /* S3 ProSavage DDR             */
-
 
152
#define FB_ACCEL_PROSAVAGE_DDRK     0x8e   /* S3 ProSavage DDR-K           */
-
 
153
 
-
 
154
#define FB_ACCEL_PUV3_UNIGFX	0xa0	/* PKUnity-v3 Unigfx		*/
-
 
155
 
-
 
156
struct fb_fix_screeninfo {
-
 
157
	char id[16];			/* identification string eg "TT Builtin" */
-
 
158
	unsigned long smem_start;	/* Start of frame buffer mem */
-
 
159
					/* (physical address) */
-
 
160
	__u32 smem_len;			/* Length of frame buffer mem */
-
 
161
	__u32 type;			/* see FB_TYPE_*		*/
-
 
162
	__u32 type_aux;			/* Interleave for interleaved Planes */
-
 
163
	__u32 visual;			/* see FB_VISUAL_*		*/
-
 
164
	__u16 xpanstep;			/* zero if no hardware panning  */
-
 
165
	__u16 ypanstep;			/* zero if no hardware panning  */
-
 
166
	__u16 ywrapstep;		/* zero if no hardware ywrap    */
-
 
167
	__u32 line_length;		/* length of a line in bytes    */
-
 
168
	unsigned long mmio_start;	/* Start of Memory Mapped I/O   */
-
 
169
					/* (physical address) */
-
 
170
	__u32 mmio_len;			/* Length of Memory Mapped I/O  */
-
 
171
	__u32 accel;			/* Indicate to driver which	*/
-
 
172
					/*  specific chip/card we have	*/
-
 
173
	__u16 reserved[3];		/* Reserved for future compatibility */
-
 
174
};
-
 
175
 
-
 
176
/* Interpretation of offset for color fields: All offsets are from the right,
-
 
177
 * inside a "pixel" value, which is exactly 'bits_per_pixel' wide (means: you
-
 
178
 * can use the offset as right argument to <<). A pixel afterwards is a bit
-
 
179
 * stream and is written to video memory as that unmodified.
-
 
180
 *
-
 
181
 * For pseudocolor: offset and length should be the same for all color
-
 
182
 * components. Offset specifies the position of the least significant bit
-
 
183
 * of the pallette index in a pixel value. Length indicates the number
-
 
184
 * of available palette entries (i.e. # of entries = 1 << length).
-
 
185
 */
-
 
186
struct fb_bitfield {
-
 
187
	__u32 offset;			/* beginning of bitfield	*/
-
 
188
	__u32 length;			/* length of bitfield		*/
-
 
189
	__u32 msb_right;		/* != 0 : Most significant bit is */
-
 
190
					/* right */
-
 
191
};
-
 
192
 
-
 
193
#define FB_NONSTD_HAM           1   /* Hold-And-Modify (HAM)        */
-
 
194
#define FB_NONSTD_REV_PIX_IN_B	2	/* order of pixels in each byte is reversed */
-
 
195
 
-
 
196
#define FB_ACTIVATE_NOW         0   /* set values immediately (or vbl)*/
-
 
197
#define FB_ACTIVATE_NXTOPEN     1   /* activate on next open    */
-
 
198
#define FB_ACTIVATE_TEST        2   /* don't set, round up impossible */
-
 
199
#define FB_ACTIVATE_MASK       15
-
 
200
					/* values			*/
-
 
201
#define FB_ACTIVATE_VBL	       16	/* activate values on next vbl  */
-
 
202
#define FB_CHANGE_CMAP_VBL     32	/* change colormap on vbl	*/
-
 
203
#define FB_ACTIVATE_ALL	       64	/* change all VCs on this fb	*/
-
 
204
#define FB_ACTIVATE_FORCE     128	/* force apply even when no change*/
-
 
205
#define FB_ACTIVATE_INV_MODE  256       /* invalidate videomode */
-
 
206
 
-
 
207
#define FB_ACCELF_TEXT          1   /* (OBSOLETE) see fb_info.flags and vc_mode */
-
 
208
 
-
 
209
#define FB_SYNC_HOR_HIGH_ACT	1	/* horizontal sync high active	*/
-
 
210
#define FB_SYNC_VERT_HIGH_ACT	2	/* vertical sync high active	*/
-
 
211
#define FB_SYNC_EXT             4   /* external sync        */
-
 
212
#define FB_SYNC_COMP_HIGH_ACT	8	/* composite sync high active   */
-
 
213
#define FB_SYNC_BROADCAST       16  /* broadcast video timings      */
-
 
214
					/* vtotal = 144d/288n/576i => PAL  */
-
 
215
					/* vtotal = 121d/242n/484i => NTSC */
-
 
216
#define FB_SYNC_ON_GREEN        32  /* sync on green */
-
 
217
 
-
 
218
#define FB_VMODE_NONINTERLACED  0	/* non interlaced */
-
 
219
#define FB_VMODE_INTERLACED     1   /* interlaced   */
-
 
220
#define FB_VMODE_DOUBLE         2   /* double scan */
-
 
221
#define FB_VMODE_ODD_FLD_FIRST	4	/* interlaced: top line first */
-
 
222
#define FB_VMODE_MASK           255
-
 
223
 
-
 
224
#define FB_VMODE_YWRAP          256 /* ywrap instead of panning     */
-
 
225
#define FB_VMODE_SMOOTH_XPAN	512	/* smooth xpan possible (internally used) */
-
 
226
#define FB_VMODE_CONUPDATE      512 /* don't update x/yoffset   */
-
 
227
 
-
 
228
/*
-
 
229
 * Display rotation support
-
 
230
 */
-
 
231
#define FB_ROTATE_UR      0
-
 
232
#define FB_ROTATE_CW      1
-
 
233
#define FB_ROTATE_UD      2
-
 
234
#define FB_ROTATE_CCW     3
-
 
235
 
-
 
236
#define PICOS2KHZ(a) (1000000000UL/(a))
-
 
237
#define KHZ2PICOS(a) (1000000000UL/(a))
-
 
238
 
-
 
239
struct fb_var_screeninfo {
-
 
240
	__u32 xres;			/* visible resolution		*/
-
 
241
	__u32 yres;
-
 
242
	__u32 xres_virtual;		/* virtual resolution		*/
-
 
243
	__u32 yres_virtual;
-
 
244
	__u32 xoffset;			/* offset from virtual to visible */
-
 
245
	__u32 yoffset;			/* resolution			*/
-
 
246
 
-
 
247
	__u32 bits_per_pixel;		/* guess what			*/
-
 
248
	__u32 grayscale;		/* != 0 Graylevels instead of colors */
-
 
249
 
-
 
250
	struct fb_bitfield red;		/* bitfield in fb mem if true color, */
-
 
251
	struct fb_bitfield green;	/* else only length is significant */
-
 
252
	struct fb_bitfield blue;
-
 
253
	struct fb_bitfield transp;	/* transparency			*/
-
 
254
 
-
 
255
	__u32 nonstd;			/* != 0 Non standard pixel format */
-
 
256
 
-
 
257
	__u32 activate;			/* see FB_ACTIVATE_*		*/
-
 
258
 
-
 
259
	__u32 height;			/* height of picture in mm    */
-
 
260
	__u32 width;			/* width of picture in mm     */
-
 
261
 
-
 
262
	__u32 accel_flags;		/* (OBSOLETE) see fb_info.flags */
-
 
263
 
-
 
264
	/* Timing: All values in pixclocks, except pixclock (of course) */
-
 
265
	__u32 pixclock;			/* pixel clock in ps (pico seconds) */
-
 
266
	__u32 left_margin;		/* time from sync to picture	*/
-
 
267
	__u32 right_margin;		/* time from picture to sync	*/
-
 
268
	__u32 upper_margin;		/* time from sync to picture	*/
-
 
269
	__u32 lower_margin;
-
 
270
	__u32 hsync_len;		/* length of horizontal sync	*/
-
 
271
	__u32 vsync_len;		/* length of vertical sync	*/
-
 
272
	__u32 sync;			/* see FB_SYNC_*		*/
-
 
273
	__u32 vmode;			/* see FB_VMODE_*		*/
-
 
274
	__u32 rotate;			/* angle we rotate counter clockwise */
-
 
275
	__u32 reserved[5];		/* Reserved for future compatibility */
-
 
276
};
-
 
277
 
-
 
278
struct fb_cmap {
-
 
279
	__u32 start;			/* First entry	*/
-
 
280
	__u32 len;			/* Number of entries */
-
 
281
	__u16 *red;			/* Red values	*/
-
 
282
	__u16 *green;
-
 
283
	__u16 *blue;
-
 
284
	__u16 *transp;			/* transparency, can be NULL */
-
 
285
};
-
 
286
 
-
 
287
struct fb_con2fbmap {
-
 
288
	__u32 console;
-
 
289
	__u32 framebuffer;
-
 
290
};
-
 
291
 
-
 
292
/* VESA Blanking Levels */
-
 
293
#define VESA_NO_BLANKING        0
-
 
294
#define VESA_VSYNC_SUSPEND      1
-
 
295
#define VESA_HSYNC_SUSPEND      2
-
 
296
#define VESA_POWERDOWN          3
-
 
297
 
-
 
298
 
-
 
299
enum {
-
 
300
	/* screen: unblanked, hsync: on,  vsync: on */
-
 
301
	FB_BLANK_UNBLANK       = VESA_NO_BLANKING,
-
 
302
 
-
 
303
	/* screen: blanked,   hsync: on,  vsync: on */
-
 
304
	FB_BLANK_NORMAL        = VESA_NO_BLANKING + 1,
-
 
305
 
-
 
306
	/* screen: blanked,   hsync: on,  vsync: off */
-
 
307
	FB_BLANK_VSYNC_SUSPEND = VESA_VSYNC_SUSPEND + 1,
-
 
308
 
-
 
309
	/* screen: blanked,   hsync: off, vsync: on */
-
 
310
	FB_BLANK_HSYNC_SUSPEND = VESA_HSYNC_SUSPEND + 1,
-
 
311
 
-
 
312
	/* screen: blanked,   hsync: off, vsync: off */
-
 
313
	FB_BLANK_POWERDOWN     = VESA_POWERDOWN + 1
-
 
314
};
-
 
315
 
-
 
316
#define FB_VBLANK_VBLANKING	0x001	/* currently in a vertical blank */
-
 
317
#define FB_VBLANK_HBLANKING	0x002	/* currently in a horizontal blank */
-
 
318
#define FB_VBLANK_HAVE_VBLANK	0x004	/* vertical blanks can be detected */
-
 
319
#define FB_VBLANK_HAVE_HBLANK	0x008	/* horizontal blanks can be detected */
-
 
320
#define FB_VBLANK_HAVE_COUNT	0x010	/* global retrace counter is available */
-
 
321
#define FB_VBLANK_HAVE_VCOUNT	0x020	/* the vcount field is valid */
-
 
322
#define FB_VBLANK_HAVE_HCOUNT	0x040	/* the hcount field is valid */
-
 
323
#define FB_VBLANK_VSYNCING	0x080	/* currently in a vsync */
-
 
324
#define FB_VBLANK_HAVE_VSYNC	0x100	/* verical syncs can be detected */
-
 
325
 
-
 
326
struct fb_vblank {
-
 
327
	__u32 flags;			/* FB_VBLANK flags */
-
 
328
	__u32 count;			/* counter of retraces since boot */
-
 
329
	__u32 vcount;			/* current scanline position */
-
 
330
	__u32 hcount;			/* current scandot position */
-
 
331
	__u32 reserved[4];		/* reserved for future compatibility */
-
 
332
};
-
 
333
 
-
 
334
/* Internal HW accel */
-
 
335
#define ROP_COPY 0
-
 
336
#define ROP_XOR  1
-
 
337
 
-
 
338
struct fb_copyarea {
-
 
339
	__u32 dx;
-
 
340
	__u32 dy;
-
 
341
	__u32 width;
-
 
342
	__u32 height;
-
 
343
	__u32 sx;
-
 
344
	__u32 sy;
-
 
345
};
-
 
346
 
-
 
347
struct fb_fillrect {
-
 
348
	__u32 dx;	/* screen-relative */
-
 
349
	__u32 dy;
-
 
350
	__u32 width;
-
 
351
	__u32 height;
-
 
352
	__u32 color;
-
 
Line 353... Line -...
353
	__u32 rop;
-
 
354
};
-
 
355
 
-
 
356
struct fb_image {
-
 
357
    __u32 dx;               /* Where to place image */
-
 
358
	__u32 dy;
-
 
359
    __u32 width;            /* Size of image */
-
 
360
	__u32 height;
-
 
361
    __u32 fg_color;         /* Only used when a mono bitmap */
-
 
362
	__u32 bg_color;
-
 
363
    __u8  depth;            /* Depth of the image */
-
 
364
    const char *data;       /* Pointer to image data */
-
 
365
	struct fb_cmap cmap;	/* color map info */
-
 
366
};
-
 
367
 
-
 
368
/*
-
 
369
 * hardware cursor control
-
 
370
 */
-
 
371
 
-
 
372
#define FB_CUR_SETIMAGE 0x01
-
 
373
#define FB_CUR_SETPOS   0x02
-
 
374
#define FB_CUR_SETHOT   0x04
-
 
375
#define FB_CUR_SETCMAP  0x08
-
 
376
#define FB_CUR_SETSHAPE 0x10
-
 
377
#define FB_CUR_SETSIZE	0x20
-
 
378
#define FB_CUR_SETALL   0xFF
-
 
379
 
-
 
380
struct fbcurpos {
-
 
381
	__u16 x, y;
-
 
382
};
-
 
383
 
-
 
384
struct fb_cursor {
-
 
385
    __u16 set;              /* what to set */
-
 
386
    __u16 enable;           /* cursor on/off */
-
 
387
    __u16 rop;              /* bitop operation */
-
 
388
    const char *mask;       /* cursor mask bits */
-
 
389
	struct fbcurpos hot;	/* cursor hot spot */
-
 
390
	struct fb_image	image;	/* Cursor image */
-
 
391
};
-
 
392
 
-
 
393
#ifdef CONFIG_FB_BACKLIGHT
-
 
394
/* Settings for the generic backlight code */
-
 
395
#define FB_BACKLIGHT_LEVELS	128
-
 
396
#define FB_BACKLIGHT_MAX	0xFF
-
 
397
#endif
-
 
398
 
6
 
399
//#ifdef __KERNEL__
7
#define FBIO_CURSOR            _IOWR('F', 0x08, struct fb_cursor_user)
400
 
-
 
401
//#include 
8
 
402
//#include 
9
#include 
403
//#include 
10
#include 
404
//#include 
-
 
405
//#include 
11
#include 
406
#include 
12
#include 
407
#include 
13
#include 
Line 408... Line 14...
408
//#include 
14
#include 
409
#include 
15
#include 
410
//#include 
16
#include 
411
 
17
 
Line 567... Line 173...
567
	u32 y;
173
	u32 y;
568
	u32 len;
174
	u32 len;
569
	u32 flags;
175
	u32 flags;
570
};
176
};
Line -... Line 177...
-
 
177
 
-
 
178
#ifdef CONFIG_FB_NOTIFY
-
 
179
extern int fb_register_client(struct notifier_block *nb);
571
 
180
extern int fb_unregister_client(struct notifier_block *nb);
-
 
181
extern int fb_notifier_call_chain(unsigned long val, void *v);
-
 
182
#else
-
 
183
static inline int fb_register_client(struct notifier_block *nb)
-
 
184
{
-
 
185
	return 0;
-
 
186
};
-
 
187
 
-
 
188
static inline int fb_unregister_client(struct notifier_block *nb)
-
 
189
{
-
 
190
	return 0;
-
 
191
};
-
 
192
 
-
 
193
static inline int fb_notifier_call_chain(unsigned long val, void *v)
-
 
194
{
-
 
195
	return 0;
-
 
196
};
-
 
197
#endif
572
extern int fb_notifier_call_chain(unsigned long val, void *v);
198
 
573
/*
199
/*
574
 * Pixmap structure definition
200
 * Pixmap structure definition
575
 *
201
 *
576
 * The purpose of this structure is to translate data
202
 * The purpose of this structure is to translate data
Line 1048... Line 674...
1048
		dst += d_pitch;
674
		dst += d_pitch;
1049
	}
675
	}
1050
}
676
}
Line 1051... Line 677...
1051
 
677
 
-
 
678
/* drivers/video/fb_defio.c */
-
 
679
extern void fb_deferred_io_init(struct fb_info *info);
-
 
680
extern void fb_deferred_io_open(struct fb_info *info,
-
 
681
				struct inode *inode,
-
 
682
				struct file *file);
-
 
683
extern void fb_deferred_io_cleanup(struct fb_info *info);
-
 
684
extern int fb_deferred_io_fsync(struct file *file, loff_t start,
Line 1052... Line 685...
1052
/* drivers/video/fb_defio.c */
685
				loff_t end, int datasync);
1053
 
686
 
1054
static inline bool fb_be_math(struct fb_info *info)
687
static inline bool fb_be_math(struct fb_info *info)
1055
{
688
{