summaryrefslogtreecommitdiffstats
path: root/libc/kernel/common/linux/fb.h
blob: 336c439b442af180fa906978b5f1c5994cd36c0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _LINUX_FB_H
#define _LINUX_FB_H

#include <asm/types.h>

#define FB_MAJOR 29
#define FB_MAX 32  

#define FBIOGET_VSCREENINFO 0x4600
#define FBIOPUT_VSCREENINFO 0x4601
#define FBIOGET_FSCREENINFO 0x4602
#define FBIOGETCMAP 0x4604
#define FBIOPUTCMAP 0x4605
#define FBIOPAN_DISPLAY 0x4606
#define FBIO_CURSOR _IOWR('F', 0x08, struct fb_cursor)

#define FBIOGET_CON2FBMAP 0x460F
#define FBIOPUT_CON2FBMAP 0x4610
#define FBIOBLANK 0x4611  
#define FBIOGET_VBLANK _IOR('F', 0x12, struct fb_vblank)
#define FBIO_ALLOC 0x4613
#define FBIO_FREE 0x4614
#define FBIOGET_GLYPH 0x4615
#define FBIOGET_HWCINFO 0x4616
#define FBIOPUT_MODEINFO 0x4617
#define FBIOGET_DISPINFO 0x4618

#define FB_TYPE_PACKED_PIXELS 0  
#define FB_TYPE_PLANES 1  
#define FB_TYPE_INTERLEAVED_PLANES 2  
#define FB_TYPE_TEXT 3  
#define FB_TYPE_VGA_PLANES 4  

#define FB_AUX_TEXT_MDA 0  
#define FB_AUX_TEXT_CGA 1  
#define FB_AUX_TEXT_S3_MMIO 2  
#define FB_AUX_TEXT_MGA_STEP16 3  
#define FB_AUX_TEXT_MGA_STEP8 4  

#define FB_AUX_VGA_PLANES_VGA4 0  
#define FB_AUX_VGA_PLANES_CFB4 1  
#define FB_AUX_VGA_PLANES_CFB8 2  

#define FB_VISUAL_MONO01 0  
#define FB_VISUAL_MONO10 1  
#define FB_VISUAL_TRUECOLOR 2  
#define FB_VISUAL_PSEUDOCOLOR 3  
#define FB_VISUAL_DIRECTCOLOR 4  
#define FB_VISUAL_STATIC_PSEUDOCOLOR 5  

#define FB_ACCEL_NONE 0  
#define FB_ACCEL_ATARIBLITT 1  
#define FB_ACCEL_AMIGABLITT 2  
#define FB_ACCEL_S3_TRIO64 3  
#define FB_ACCEL_NCR_77C32BLT 4  
#define FB_ACCEL_S3_VIRGE 5  
#define FB_ACCEL_ATI_MACH64GX 6  
#define FB_ACCEL_DEC_TGA 7  
#define FB_ACCEL_ATI_MACH64CT 8  
#define FB_ACCEL_ATI_MACH64VT 9  
#define FB_ACCEL_ATI_MACH64GT 10  
#define FB_ACCEL_SUN_CREATOR 11  
#define FB_ACCEL_SUN_CGSIX 12  
#define FB_ACCEL_SUN_LEO 13  
#define FB_ACCEL_IMS_TWINTURBO 14  
#define FB_ACCEL_3DLABS_PERMEDIA2 15  
#define FB_ACCEL_MATROX_MGA2064W 16  
#define FB_ACCEL_MATROX_MGA1064SG 17  
#define FB_ACCEL_MATROX_MGA2164W 18  
#define FB_ACCEL_MATROX_MGA2164W_AGP 19  
#define FB_ACCEL_MATROX_MGAG100 20  
#define FB_ACCEL_MATROX_MGAG200 21  
#define FB_ACCEL_SUN_CG14 22  
#define FB_ACCEL_SUN_BWTWO 23  
#define FB_ACCEL_SUN_CGTHREE 24  
#define FB_ACCEL_SUN_TCX 25  
#define FB_ACCEL_MATROX_MGAG400 26  
#define FB_ACCEL_NV3 27  
#define FB_ACCEL_NV4 28  
#define FB_ACCEL_NV5 29  
#define FB_ACCEL_CT_6555x 30  
#define FB_ACCEL_3DFX_BANSHEE 31  
#define FB_ACCEL_ATI_RAGE128 32  
#define FB_ACCEL_IGS_CYBER2000 33  
#define FB_ACCEL_IGS_CYBER2010 34  
#define FB_ACCEL_IGS_CYBER5000 35  
#define FB_ACCEL_SIS_GLAMOUR 36  
#define FB_ACCEL_3DLABS_PERMEDIA3 37  
#define FB_ACCEL_ATI_RADEON 38  
#define FB_ACCEL_I810 39  
#define FB_ACCEL_SIS_GLAMOUR_2 40  
#define FB_ACCEL_SIS_XABRE 41  
#define FB_ACCEL_I830 42  
#define FB_ACCEL_NV_10 43  
#define FB_ACCEL_NV_20 44  
#define FB_ACCEL_NV_30 45  
#define FB_ACCEL_NV_40 46  
#define FB_ACCEL_XGI_VOLARI_V 47  
#define FB_ACCEL_XGI_VOLARI_Z 48  
#define FB_ACCEL_OMAP1610 49  
#define FB_ACCEL_NEOMAGIC_NM2070 90  
#define FB_ACCEL_NEOMAGIC_NM2090 91  
#define FB_ACCEL_NEOMAGIC_NM2093 92  
#define FB_ACCEL_NEOMAGIC_NM2097 93  
#define FB_ACCEL_NEOMAGIC_NM2160 94  
#define FB_ACCEL_NEOMAGIC_NM2200 95  
#define FB_ACCEL_NEOMAGIC_NM2230 96  
#define FB_ACCEL_NEOMAGIC_NM2360 97  
#define FB_ACCEL_NEOMAGIC_NM2380 98  

#define FB_ACCEL_SAVAGE4 0x80  
#define FB_ACCEL_SAVAGE3D 0x81  
#define FB_ACCEL_SAVAGE3D_MV 0x82  
#define FB_ACCEL_SAVAGE2000 0x83  
#define FB_ACCEL_SAVAGE_MX_MV 0x84  
#define FB_ACCEL_SAVAGE_MX 0x85  
#define FB_ACCEL_SAVAGE_IX_MV 0x86  
#define FB_ACCEL_SAVAGE_IX 0x87  
#define FB_ACCEL_PROSAVAGE_PM 0x88  
#define FB_ACCEL_PROSAVAGE_KM 0x89  
#define FB_ACCEL_S3TWISTER_P 0x8a  
#define FB_ACCEL_S3TWISTER_K 0x8b  
#define FB_ACCEL_SUPERSAVAGE 0x8c  
#define FB_ACCEL_PROSAVAGE_DDR 0x8d  
#define FB_ACCEL_PROSAVAGE_DDRK 0x8e  

struct fb_fix_screeninfo {
 char id[16];
 unsigned long smem_start;

 __u32 smem_len;
 __u32 type;
 __u32 type_aux;
 __u32 visual;
 __u16 xpanstep;
 __u16 ypanstep;
 __u16 ywrapstep;
 __u32 line_length;
 unsigned long mmio_start;

 __u32 mmio_len;
 __u32 accel;

 __u16 reserved[3];
};

struct fb_bitfield {
 __u32 offset;
 __u32 length;
 __u32 msb_right;

};

#define FB_NONSTD_HAM 1  

#define FB_ACTIVATE_NOW 0  
#define FB_ACTIVATE_NXTOPEN 1  
#define FB_ACTIVATE_TEST 2  
#define FB_ACTIVATE_MASK 15

#define FB_ACTIVATE_VBL 16  
#define FB_CHANGE_CMAP_VBL 32  
#define FB_ACTIVATE_ALL 64  
#define FB_ACTIVATE_FORCE 128  
#define FB_ACTIVATE_INV_MODE 256  

#define FB_ACCELF_TEXT 1  

#define FB_SYNC_HOR_HIGH_ACT 1  
#define FB_SYNC_VERT_HIGH_ACT 2  
#define FB_SYNC_EXT 4  
#define FB_SYNC_COMP_HIGH_ACT 8  
#define FB_SYNC_BROADCAST 16  

#define FB_SYNC_ON_GREEN 32  

#define FB_VMODE_NONINTERLACED 0  
#define FB_VMODE_INTERLACED 1  
#define FB_VMODE_DOUBLE 2  
#define FB_VMODE_MASK 255

#define FB_VMODE_YWRAP 256  
#define FB_VMODE_SMOOTH_XPAN 512  
#define FB_VMODE_CONUPDATE 512  

#define FB_ROTATE_UR 0
#define FB_ROTATE_CW 1
#define FB_ROTATE_UD 2
#define FB_ROTATE_CCW 3

#define PICOS2KHZ(a) (1000000000UL/(a))
#define KHZ2PICOS(a) (1000000000UL/(a))

struct fb_var_screeninfo {
 __u32 xres;
 __u32 yres;
 __u32 xres_virtual;
 __u32 yres_virtual;
 __u32 xoffset;
 __u32 yoffset;

 __u32 bits_per_pixel;
 __u32 grayscale;

 struct fb_bitfield red;
 struct fb_bitfield green;
 struct fb_bitfield blue;
 struct fb_bitfield transp;

 __u32 nonstd;

 __u32 activate;

 __u32 height;
 __u32 width;

 __u32 accel_flags;

 __u32 pixclock;
 __u32 left_margin;
 __u32 right_margin;
 __u32 upper_margin;
 __u32 lower_margin;
 __u32 hsync_len;
 __u32 vsync_len;
 __u32 sync;
 __u32 vmode;
 __u32 rotate;
 __u32 reserved[5];
};

struct fb_cmap {
 __u32 start;
 __u32 len;
 __u16 *red;
 __u16 *green;
 __u16 *blue;
 __u16 *transp;
};

struct fb_con2fbmap {
 __u32 console;
 __u32 framebuffer;
};

#define VESA_NO_BLANKING 0
#define VESA_VSYNC_SUSPEND 1
#define VESA_HSYNC_SUSPEND 2
#define VESA_POWERDOWN 3

enum {

 FB_BLANK_UNBLANK = VESA_NO_BLANKING,

 FB_BLANK_NORMAL = VESA_NO_BLANKING + 1,

 FB_BLANK_VSYNC_SUSPEND = VESA_VSYNC_SUSPEND + 1,

 FB_BLANK_HSYNC_SUSPEND = VESA_HSYNC_SUSPEND + 1,

 FB_BLANK_POWERDOWN = VESA_POWERDOWN + 1
};

#define FB_VBLANK_VBLANKING 0x001  
#define FB_VBLANK_HBLANKING 0x002  
#define FB_VBLANK_HAVE_VBLANK 0x004  
#define FB_VBLANK_HAVE_HBLANK 0x008  
#define FB_VBLANK_HAVE_COUNT 0x010  
#define FB_VBLANK_HAVE_VCOUNT 0x020  
#define FB_VBLANK_HAVE_HCOUNT 0x040  
#define FB_VBLANK_VSYNCING 0x080  
#define FB_VBLANK_HAVE_VSYNC 0x100  

struct fb_vblank {
 __u32 flags;
 __u32 count;
 __u32 vcount;
 __u32 hcount;
 __u32 reserved[4];
};

#define ROP_COPY 0
#define ROP_XOR 1

struct fb_copyarea {
 __u32 dx;
 __u32 dy;
 __u32 width;
 __u32 height;
 __u32 sx;
 __u32 sy;
};

struct fb_fillrect {
 __u32 dx;
 __u32 dy;
 __u32 width;
 __u32 height;
 __u32 color;
 __u32 rop;
};

struct fb_image {
 __u32 dx;
 __u32 dy;
 __u32 width;
 __u32 height;
 __u32 fg_color;
 __u32 bg_color;
 __u8 depth;
 const char *data;
 struct fb_cmap cmap;
};

#define FB_CUR_SETIMAGE 0x01
#define FB_CUR_SETPOS 0x02
#define FB_CUR_SETHOT 0x04
#define FB_CUR_SETCMAP 0x08
#define FB_CUR_SETSHAPE 0x10
#define FB_CUR_SETSIZE 0x20
#define FB_CUR_SETALL 0xFF

struct fbcurpos {
 __u16 x, y;
};

struct fb_cursor {
 __u16 set;
 __u16 enable;
 __u16 rop;
 const char *mask;
 struct fbcurpos hot;
 struct fb_image image;
};

#endif