1 #ifndef _LINUX_FB_H
2 #define _LINUX_FB_H
3
4
5
6 #ifdef __KERNEL__
7 #include <linux/config.h>
8 #include <linux/fs.h>
9 #endif
10
11
12
13 #define FBIOGET_VSCREENINFO 0x4600
14 #define FBIOPUT_VSCREENINFO 0x4601
15 #define FBIOGET_FSCREENINFO 0x4602
16 #define FBIOGETCMAP 0x4604
17 #define FBIOPUTCMAP 0x4605
18 #define FBIOPAN_DISPLAY 0x4606
19
20 #define FB_TYPE_PACKED_PIXELS 0
21 #define FB_TYPE_PLANES 1
22 #define FB_TYPE_INTERLEAVED_PLANES 2
23
24 #define FB_VISUAL_MONO01 0
25 #define FB_VISUAL_MONO10 1
26 #define FB_VISUAL_TRUECOLOR 2
27 #define FB_VISUAL_PSEUDOCOLOR 3
28 #define FB_VISUAL_DIRECTCOLOR 4
29 #define FB_VISUAL_STATIC_PSEUDOCOLOR 5
30 #define FB_VISUAL_STATIC_DIRECTCOLOR 6
31
32 struct fb_fix_screeninfo {
33 char id[16];
34 unsigned long smem_start;
35 unsigned long smem_len;
36 int type;
37 int type_aux;
38 int visual;
39 u_short xpanstep;
40 u_short ypanstep;
41 u_short ywrapstep;
42 short reserved[11];
43 };
44
45 struct fb_bitfield {
46 int offset;
47 int length;
48 int msb_right;
49
50 };
51
52 #define FB_NONSTD_HAM 1
53
54 #define FB_ACTIVATE_NOW 0
55 #define FB_ACTIVATE_NXTOPEN 1
56 #define FB_ACTIVATE_TEST 2
57 #define FB_ACTIVATE_MASK 15
58
59 #define FB_ACTIVATE_VBL 16
60 #define FB_CHANGE_CMAP_VBL 32
61
62 #define FB_ACCEL_NONE 0
63 #define FB_ACCEL_ATARIBLITT 1
64 #define FB_ACCEL_AMIGABLITT 2
65 #define FB_ACCEL_CYBERVISION 3
66
67 #define FB_SYNC_HOR_HIGH_ACT 1
68 #define FB_SYNC_VERT_HIGH_ACT 2
69 #define FB_SYNC_EXT 4
70 #define FB_SYNC_COMP_HIGH_ACT 8
71 #define FB_SYNC_BROADCAST 16
72
73
74
75 #define FB_VMODE_NONINTERLACED 0
76 #define FB_VMODE_INTERLACED 1
77 #define FB_VMODE_DOUBLE 2
78 #define FB_VMODE_MASK 255
79
80 #define FB_VMODE_YWRAP 256
81
82 struct fb_var_screeninfo {
83 int xres;
84 int yres;
85 int xres_virtual;
86 int yres_virtual;
87 int xoffset;
88 int yoffset;
89
90 int bits_per_pixel;
91 int grayscale;
92
93 struct fb_bitfield red;
94 struct fb_bitfield green;
95 struct fb_bitfield blue;
96 struct fb_bitfield transp;
97
98 int nonstd;
99
100 int activate;
101
102 int height;
103 int width;
104
105 int accel;
106
107
108 unsigned long pixclock;
109 unsigned long left_margin;
110 unsigned long right_margin;
111 unsigned long upper_margin;
112 unsigned long lower_margin;
113 unsigned long hsync_len;
114 unsigned long vsync_len;
115 int sync;
116 int vmode;
117 int reserved[6];
118 };
119
120 struct fb_cmap {
121 int start;
122 int len;
123 unsigned short *red;
124 unsigned short *green;
125 unsigned short *blue;
126 unsigned short *transp;
127 };
128
129 #ifdef __KERNEL__
130
131 struct fb_ops {
132
133 int (*fb_get_fix) (struct fb_fix_screeninfo *, int);
134
135 int (*fb_get_var) (struct fb_var_screeninfo *, int);
136
137 int (*fb_set_var) (struct fb_var_screeninfo *, int);
138
139 int (*fb_get_cmap) (struct fb_cmap *, int, int);
140
141 int (*fb_set_cmap) (struct fb_cmap *, int, int);
142
143 int (*fb_pan_display) (struct fb_var_screeninfo *, int);
144
145 int (*fb_ioctl)(struct inode *, struct file *, unsigned int,
146 unsigned long, int);
147 };
148
149 int register_framebuffer(char *, int *, struct fb_ops *, int,
150 struct fb_var_screeninfo *);
151 int unregister_framebuffer(int);
152
153
154
155
156
157
158 struct display {
159
160
161
162
163 #if defined(CONFIG_AMIGA)
164 ushort scr_max_height;
165 ushort scr_max_width;
166 ushort scr_height;
167 ushort scr_width;
168 ushort scr_depth;
169 int bytes_per_row;
170
171 ulong crsrcol;
172
173 ushort scroll_latch;
174 ushort y_wrap;
175 ushort cursor_latch;
176 ushort *cursor, *dummy;
177 ushort cursor_flash;
178 ushort cursor_visible;
179
180
181 ushort diwstrt_v, diwstrt_h;
182 ushort diwstop_v, diwstop_h;
183 ushort bplcon0;
184 ushort htotal;
185
186 u_char *bitplane[8];
187 ulong plane_size;
188
189 ushort *coplist1hdr;
190 ushort *coplist1dyn;
191 ushort *coplist2hdr;
192 ushort *coplist2dyn;
193
194 #endif
195
196
197
198 struct fb_var_screeninfo var;
199
200 struct fb_cmap cmap;
201 u_char *screen_base;
202 int visual;
203 int type;
204 int type_aux;
205 u_short ypanstep;
206 u_short ywrapstep;
207 u_short can_soft_blank;
208 u_short inverse;
209
210 #if 0
211 struct fb_fix_cursorinfo fcrsr;
212 struct fb_var_cursorinfo *vcrsr;
213 struct fb_cursorstate crsrstate;
214 #endif
215
216
217
218 struct vc_data *conp;
219 int cursor_x;
220 int cursor_y;
221 int fgcol;
222 int bgcol;
223 u_long next_line;
224 u_long next_plane;
225 u_char *fontdata;
226 int fontheight;
227 int fontwidth;
228 struct display_switch *dispsw;
229 u_short scrollmode;
230 short yscroll;
231 };
232
233
234 struct fb_info {
235 char modename[40];
236 struct display *disp;
237 char fontname[40];
238 int (*changevar)(int);
239 int (*switch_con)(int);
240 int (*updatevar)(int);
241 void (*blank)(int);
242 };
243
244 #endif
245
246 #if 1
247
248 #define FBCMD_GET_CURRENTPAR 0xDEAD0005
249 #define FBCMD_SET_CURRENTPAR 0xDEAD8005
250
251 #endif
252
253
254 #if 1
255
256
257
258
259
260 #define FBIOGET_FCURSORINFO 0x4607
261 #define FBIOGET_VCURSORINFO 0x4608
262 #define FBIOPUT_VCURSORINFO 0x4609
263 #define FBIOGET_CURSORSTATE 0x460A
264 #define FBIOPUT_CURSORSTATE 0x460B
265
266
267 struct fb_fix_cursorinfo {
268 u_short crsr_width;
269 u_short crsr_height;
270 u_short crsr_xsize;
271 u_short crsr_ysize;
272 u_short crsr_color1;
273 u_short crsr_color2;
274 };
275
276 struct fb_var_cursorinfo {
277 u_long data[256];
278 };
279
280 struct fb_cursorstate {
281 short xoffset;
282 short yoffset;
283 u_short mode;
284 };
285
286 #define FB_CURSOR_OFF 0
287 #define FB_CURSOR_ON 1
288 #define FB_CURSOR_FLASH 2
289
290 #endif
291
292
293 #endif