Print this page
NEX-16819 loader UEFI support
Includes work by Toomas Soome <tsoome@me.com>
Upstream commits:
loader: pxe receive cleanup
9475 libefi: Do not return only if ReceiveFilter
installboot: should support efi system partition
8931 boot1.efi: scan all display modes rather than
loader: spinconsole updates
loader: gfx experiment to try GOP Blt() function.
sha1 build test
loader: add sha1 hash calculation
common/sha1: update for loader build
loader: biosdisk rework
uts: 32-bit kernel FB needs mapping in low memory
uts: add diag-device
uts: boot console mirror with diag-device
uts: enable very early console on ttya
kmdb: add diag-device as input/output device
uts: test VGA memory exclusion from mapping
uts: clear boot mapping and protect boot pages test
uts: add dboot map debug printf
uts: need to release FB pages in release_bootstrap()
uts: add screenmap ioctl
uts: update sys/queue.h
loader: add illumos uts/common to include path
loader: tem/gfx font cleanup
loader: vbe checks
uts: gfx_private set KD_TEXT when KD_RESETTEXT is
uts: gfx 8-bit update
loader: gfx 8-bit fix
loader: always set media size from partition.
uts: MB2 support for 32-bit kernel
loader: x86 should have tem 80x25
uts: x86 should have tem 80x25
uts: font update
loader: font update
uts: tem attributes
loader: tem.c comment added
uts: use font module
loader: add font module
loader: build rules for new font setup
uts: gfx_private update for new font structure
uts: early boot update for new font structure
uts: font update
uts: font build rules update for new fonts
uts: tem update to new font structure
loader: module.c needs to include tem_impl.h
uts: gfx_private 8x16 font rework
uts: make font_lookup public
loader: font rework
uts: font rework
9259 libefi: efi_alloc_and_read should check for PMBR
uts: tem utf-8 support
loader: implement tem utf-8 support
loader: tem should be able to display UTF-8
7784 uts: console input should support utf-8
7796 uts: ldterm default to utf-8
uts: do not reset serial console
uts: set up colors even if tem is not console
uts: add type for early boot properties
uts: gfx_private experiment with drm and vga
uts: gfx_private should use setmode drm callback.
uts: identify FB types and set up gfx_private based
loader: replace gop and vesa with framebuffer
uts: boot needs simple tem to support mdb
uts: boot_keyboard should emit esc sequences for
uts: gfx_private FB showuld be written by line
kmdb: set terminal window size
uts: gfx_private needs to keep track of early boot FB
pnglite: move pnglite to usr/src/common
loader: gfx_fb
ficl-sys: add gfx primitives
loader: add illumos.png logo
ficl: add fb-putimage
loader: add png support
loader: add alpha blending for gfx_fb
loader: use term-drawrect for menu frame
ficl: add simple gfx words
uts: provide fb_info via fbgattr dev_specific array.
uts: gfx_private add alpha blending
uts: update sys/ascii.h
uts: tem OSC support (incomplete)
uts: implement env module support and use data from
uts: tem get colors from early boot data
loader: use crc32 from libstand (libz)
loader: optimize for size
loader: pass tem info to the environment
loader: import tem for loader console
loader: UEFI loader needs to set ISADIR based on
loader: need UEFI32 support
8918 loader.efi: add vesa edid support
uts: tem_safe_pix_clear_prom_output() should only
uts: tem_safe_pix_clear_entire_screen() should use
uts: tem_safe_check_first_time() should query cursor
uts: tem implement cls callback & visual_io v4
uts: gfx_vgatext use block cursor for vgatext
uts: gfx_private implement cls callback & visual_io
uts: gfx_private bitmap framebuffer implementation
uts: early start frame buffer console support
uts: font functions should check the input char
uts: font rendering should support 16/24/32bit depths
uts: use smallest font as fallback default.
uts: update terminal dimensions based on selected
7834 uts: vgatext should use gfx_private
uts: add spacing property to 8859-1.bdf
terminfo: add underline for sun-color
terminfo: sun-color has 16 colors
uts: add font load callback type
loader: do not repeat int13 calls with error 0x20 and
8905 loader: add skein/edonr support
8904 common/crypto: make skein and edonr loader
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Revert "NEX-16819 loader UEFI support"
This reverts commit ec06b9fc617b99234e538bf2e7e4d02a24993e0c.
Reverting due to failures in the zfs-tests and the sharefs-tests
NEX-16819 loader UEFI support
Includes work by Toomas Soome <tsoome@me.com>
Upstream commits:
loader: pxe receive cleanup
9475 libefi: Do not return only if ReceiveFilter
installboot: should support efi system partition
8931 boot1.efi: scan all display modes rather than
loader: spinconsole updates
loader: gfx experiment to try GOP Blt() function.
sha1 build test
loader: add sha1 hash calculation
common/sha1: update for loader build
loader: biosdisk rework
uts: 32-bit kernel FB needs mapping in low memory
uts: add diag-device
uts: boot console mirror with diag-device
uts: enable very early console on ttya
kmdb: add diag-device as input/output device
uts: test VGA memory exclusion from mapping
uts: clear boot mapping and protect boot pages test
uts: add dboot map debug printf
uts: need to release FB pages in release_bootstrap()
uts: add screenmap ioctl
uts: update sys/queue.h
loader: add illumos uts/common to include path
loader: tem/gfx font cleanup
loader: vbe checks
uts: gfx_private set KD_TEXT when KD_RESETTEXT is
uts: gfx 8-bit update
loader: gfx 8-bit fix
loader: always set media size from partition.
uts: MB2 support for 32-bit kernel
loader: x86 should have tem 80x25
uts: x86 should have tem 80x25
uts: font update
loader: font update
uts: tem attributes
loader: tem.c comment added
uts: use font module
loader: add font module
loader: build rules for new font setup
uts: gfx_private update for new font structure
uts: early boot update for new font structure
uts: font update
uts: font build rules update for new fonts
uts: tem update to new font structure
loader: module.c needs to include tem_impl.h
uts: gfx_private 8x16 font rework
uts: make font_lookup public
loader: font rework
uts: font rework
libefi: efi_alloc_and_read should check for PMBR
uts: tem utf-8 support
loader: implement tem utf-8 support
loader: tem should be able to display UTF-8
7784 uts: console input should support utf-8
7796 uts: ldterm default to utf-8
uts: do not reset serial console
uts: set up colors even if tem is not console
uts: add type for early boot properties
uts: gfx_private experiment with drm and vga
uts: gfx_private should use setmode drm callback.
uts: identify FB types and set up gfx_private based
loader: replace gop and vesa with framebuffer
uts: boot needs simple tem to support mdb
uts: boot_keyboard should emit esc sequences for
uts: gfx_private FB showuld be written by line
kmdb: set terminal window size
uts: gfx_private needs to keep track of early boot FB
pnglite: move pnglite to usr/src/common
loader: gfx_fb
ficl-sys: add gfx primitives
loader: add illumos.png logo
ficl: add fb-putimage
loader: add png support
loader: add alpha blending for gfx_fb
loader: use term-drawrect for menu frame
ficl: add simple gfx words
uts: provide fb_info via fbgattr dev_specific array.
uts: gfx_private add alpha blending
uts: update sys/ascii.h
uts: tem OSC support (incomplete)
uts: implement env module support and use data from
uts: tem get colors from early boot data
loader: use crc32 from libstand (libz)
loader: optimize for size
loader: pass tem info to the environment
loader: import tem for loader console
loader: UEFI loader needs to set ISADIR based on
loader: need UEFI32 support
8918 loader.efi: add vesa edid support
uts: tem_safe_pix_clear_prom_output() should only
uts: tem_safe_pix_clear_entire_screen() should use
uts: tem_safe_check_first_time() should query cursor
uts: tem implement cls callback & visual_io v4
uts: gfx_vgatext use block cursor for vgatext
uts: gfx_private implement cls callback & visual_io
uts: gfx_private bitmap framebuffer implementation
uts: early start frame buffer console support
uts: font functions should check the input char
uts: font rendering should support 16/24/32bit depths
uts: use smallest font as fallback default.
uts: update terminal dimensions based on selected
7834 uts: vgatext should use gfx_private
uts: add spacing property to 8859-1.bdf
terminfo: add underline for sun-color
terminfo: sun-color has 16 colors
uts: add font load callback type
loader: do not repeat int13 calls with error 0x20 and
8905 loader: add skein/edonr support
8904 common/crypto: make skein and edonr loader
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/uts/common/sys/fbio.h
+++ new/usr/src/uts/common/sys/fbio.h
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License, Version 1.0 only
6 6 * (the "License"). You may not use this file except in compliance
7 7 * with the License.
8 8 *
9 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 10 * or http://www.opensolaris.org/os/licensing.
11 11 * See the License for the specific language governing permissions
12 12 * and limitations under the License.
13 13 *
14 14 * When distributing Covered Code, include this CDDL HEADER in each
15 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 16 * If applicable, add the following below this CDDL HEADER, with the
17 17 * fields enclosed by brackets "[]" replaced with your own identifying
18 18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 19 *
|
↓ open down ↓ |
19 lines elided |
↑ open up ↑ |
20 20 * CDDL HEADER END
21 21 */
22 22 /*
23 23 * Copyright (c) 1986,1997-1998 by Sun Microsystems, Inc.
24 24 * All rights reserved.
25 25 */
26 26
27 27 #ifndef _SYS_FBIO_H
28 28 #define _SYS_FBIO_H
29 29
30 -#pragma ident "%Z%%M% %I% %E% SMI" /* SunOS4.1.2 5.49 */
31 -
32 30 #include <sys/types.h>
33 31
34 32 #ifdef __cplusplus
35 33 extern "C" {
36 34 #endif
37 35
38 36 #ifndef ASM
39 37 /*
40 38 * Frame buffer descriptor.
41 39 * Returned by FBIOGTYPE ioctl on frame buffer devices.
42 40 */
43 41 struct fbtype {
44 42 int fb_type; /* as defined below */
45 43 int fb_height; /* in pixels */
46 44 int fb_width; /* in pixels */
47 45 int fb_depth; /* bits per pixel */
48 46 int fb_cmsize; /* size of color map (entries) */
49 47 int fb_size; /* total size in bytes */
50 48 };
51 49
52 50 #define FIOC ('F'<<8)
53 51 #define FBIOGTYPE (FIOC|0)
54 52
55 53 #ifdef _KERNEL
56 54 struct fbpixrect {
57 55 struct pixrect *fbpr_pixrect; /* Pixrect of dev returned here */
58 56 };
59 57
60 58 #define FBIOGPIXRECT (FIOC|1)
61 59 #endif /* _KERNEL */
62 60
63 61 /*
64 62 * General purpose structure for passing info in and out of frame buffers
65 63 * (used for gp1)
66 64 */
67 65 struct fbinfo {
68 66 int fb_physaddr; /* physical frame buffer address */
69 67 int fb_hwwidth; /* fb board width */
70 68 int fb_hwheight; /* fb board height */
71 69 int fb_addrdelta; /* phys addr diff between boards */
72 70 unsigned char *fb_ropaddr; /* fb va thru kernelmap */
73 71 int fb_unit; /* minor devnum of fb */
74 72 };
75 73
76 74 #define FBIOGINFO (FIOC|2)
77 75
78 76 /*
79 77 * Color map I/O. See also fbcmap_i below.
80 78 */
81 79 struct fbcmap {
82 80 int index; /* first element (0 origin) */
83 81 int count; /* number of elements */
84 82 unsigned char *red; /* red color map elements */
85 83 unsigned char *green; /* green color map elements */
86 84 unsigned char *blue; /* blue color map elements */
87 85 };
88 86
89 87 #ifdef _SYSCALL32
90 88
91 89 struct fbcmap32 {
92 90 int32_t index; /* first element (0 origin) */
93 91 int32_t count; /* number of elements */
94 92 caddr32_t red; /* red color map elements */
95 93 caddr32_t green; /* green color map elements */
96 94 caddr32_t blue; /* blue color map elements */
97 95 };
98 96
99 97 #endif /* _SYSCALL32 */
100 98
101 99 #define FBIOPUTCMAP (FIOC|3)
102 100 #define FBIOGETCMAP (FIOC|4)
103 101
104 102 /*
105 103 * Set/Get attributes
106 104 */
107 105 #define FB_ATTR_NDEVSPECIFIC 8 /* no. of device specific values */
108 106 #define FB_ATTR_NEMUTYPES 4 /* no. of emulation types */
109 107
110 108 struct fbsattr {
111 109 int flags; /* misc flags */
112 110 #define FB_ATTR_AUTOINIT 1 /* emulation auto init flag */
113 111 #define FB_ATTR_DEVSPECIFIC 2 /* dev. specific stuff valid flag */
114 112 int emu_type; /* emulation type (-1 if unused) */
115 113 int dev_specific[FB_ATTR_NDEVSPECIFIC]; /* catchall */
116 114 };
117 115
118 116 struct fbgattr {
119 117 int real_type; /* real device type */
120 118 int owner; /* PID of owner, 0 if myself */
121 119 struct fbtype fbtype; /* fbtype info for real device */
122 120 struct fbsattr sattr; /* see above */
123 121 int emu_types[FB_ATTR_NEMUTYPES]; /* possible emulations */
124 122 /* (-1 if unused) */
125 123 };
126 124
127 125 #define FBIOSATTR (FIOC|5)
128 126 #define FBIOGATTR (FIOC|6)
129 127
130 128
131 129 /*
132 130 * Video control
133 131 * (the unused bits are reserved for future use)
134 132 */
135 133 #define FBVIDEO_OFF 0
136 134 #define FBVIDEO_ON 1
137 135
138 136 #define FBIOSVIDEO (FIOC|7)
139 137 #define FBIOGVIDEO (FIOC|8)
140 138
141 139 /* Vertical retrace support. */
142 140 #define FBIOVERTICAL (FIOC|9)
143 141 #define GRABPAGEALLOC (FIOC|10)
144 142 #define GRABPAGEFREE (FIOC|11)
145 143 #define GRABATTACH (FIOC|12)
146 144
147 145 #define FBIOGPLNGRP (FIOC|13)
148 146 #define FBIOGCMSIZE (FIOC|14)
149 147 #define FBIOSCMSIZE (FIOC|15)
150 148 #define FBIOSCMS (FIOC|16)
151 149 #define FBIOAVAILPLNGRP (FIOC|17)
152 150
153 151
154 152 /*
155 153 * Structure to pass double buffering state back and forth the device.
156 154 */
157 155
158 156 /* used in devstate */
159 157 #define FBDBL_AVAIL 0x80000000
160 158 #define FBDBL_DONT_BLOCK 0x40000000
161 159 #define FBDBL_AVAIL_PG 0x20000000
162 160
163 161 /* used in read/write/display */
164 162 #define FBDBL_A 0x1
165 163 #define FBDBL_B 0x2
166 164 #define FBDBL_BOTH (FBDBL_A | FBDBL_B)
167 165 #define FBDBL_NONE 0x4
168 166
169 167 struct fbdblinfo {
170 168 unsigned int dbl_devstate;
171 169 unsigned int dbl_read;
172 170 unsigned int dbl_write;
173 171 unsigned int dbl_display;
174 172 int dbl_depth;
175 173 char dbl_wid;
176 174 };
177 175
178 176 #define FBIODBLGINFO (FIOC|18)
179 177 #define FBIODBLSINFO (FIOC|19)
180 178
181 179 /* 8-bit emulation in 24-bit ioctls */
182 180
183 181 #define FBIOSWINFD (FIOC|20)
184 182 #define FBIOSAVWINFD (FIOC|21)
185 183 #define FBIORESWINFD (FIOC|22)
186 184 #define FBIOSRWINFD (FIOC|23)
187 185
188 186 /*
189 187 * hardware cursor control
190 188 */
191 189
192 190 struct fbcurpos {
193 191 short x, y;
194 192 };
195 193
196 194 struct fbcursor {
197 195 short set; /* what to set */
198 196 #define FB_CUR_SETCUR 0x01
199 197 #define FB_CUR_SETPOS 0x02
200 198 #define FB_CUR_SETHOT 0x04
201 199 #define FB_CUR_SETCMAP 0x08
202 200 #define FB_CUR_SETSHAPE 0x10
203 201 #define FB_CUR_SETALL 0x1F
204 202 short enable; /* cursor on/off */
205 203 struct fbcurpos pos; /* cursor position */
206 204 struct fbcurpos hot; /* cursor hot spot */
207 205 struct fbcmap cmap; /* color map info */
208 206 struct fbcurpos size; /* cursor bit map size */
209 207 char *image; /* cursor image bits */
210 208 char *mask; /* cursor mask bits */
211 209 };
212 210
213 211 #ifdef _SYSCALL32
214 212 struct fbcursor32 {
215 213 short set; /* what to set */
216 214 short enable; /* cursor on/off */
217 215 struct fbcurpos pos; /* cursor position */
218 216 struct fbcurpos hot; /* cursor hot spot */
219 217 struct fbcmap32 cmap; /* color map info */
220 218 struct fbcurpos size; /* cursor bit map size */
221 219 caddr32_t image; /* cursor image bits */
222 220 caddr32_t mask; /* cursor mask bits */
223 221 };
224 222 #endif /* _SYSCALL32 */
225 223
226 224 /* set/get cursor attributes/shape */
227 225 #define FBIOSCURSOR (FIOC|24)
228 226 #define FBIOGCURSOR (FIOC|25)
229 227
230 228 /* set/get cursor position */
231 229 #define FBIOSCURPOS (FIOC|26)
232 230 #define FBIOGCURPOS (FIOC|27)
233 231
234 232 /* get max cursor size */
235 233 #define FBIOGCURMAX (FIOC|28)
236 234
237 235 /* Window Grabber info ioctl */
238 236 #define GRABLOCKINFO (FIOC|29)
239 237
240 238 /*
241 239 * Window Identification (wid) defines, structures, and ioctls.
242 240 *
243 241 * Some wids need to be unique when used for things such as double
244 242 * buffering or rendering clipping. Some wids can be shared when
245 243 * used for display attributes only. What can be shared and how
246 244 * may be device dependent. The fb_wid_alloc.wa_type and fb_wid_item
247 245 * structure members will be left to device specific interpretation.
248 246 */
249 247
250 248 #define FB_WID_SHARED_8 0
251 249 #define FB_WID_SHARED_24 1
252 250 #define FB_WID_DBL_8 2
253 251 #define FB_WID_DBL_24 3
254 252
255 253 struct fb_wid_alloc {
256 254 unsigned int wa_type; /* special attributes */
257 255 int wa_index; /* base wid returned */
258 256 unsigned int wa_count; /* how many contiguous wids */
259 257 };
260 258
261 259 struct fb_wid_item {
262 260 unsigned int wi_type; /* special attributes */
263 261 int wi_index; /* which lut */
264 262 unsigned int wi_attrs; /* which attributes */
265 263 unsigned int wi_values[NBBY*sizeof (int)]; /* the attr values */
266 264 };
267 265
268 266 struct fb_wid_list {
269 267 unsigned int wl_flags;
270 268 unsigned int wl_count;
271 269 struct fb_wid_item *wl_list;
272 270 };
273 271
274 272 #ifdef _SYSCALL32
275 273
276 274 struct fb_wid_list32 {
277 275 uint32_t wl_flags;
278 276 uint32_t wl_count;
279 277 caddr32_t wl_list;
280 278 };
281 279
282 280 #endif /* _SYSCALL32 */
283 281
284 282 struct fb_wid_dbl_info {
285 283 struct fb_wid_alloc dbl_wid;
286 284 char dbl_fore;
287 285 char dbl_back;
288 286 char dbl_read_state;
289 287 char dbl_write_state;
290 288 };
291 289
292 290 #define FBIO_WID_ALLOC (FIOC|30)
|
↓ open down ↓ |
251 lines elided |
↑ open up ↑ |
293 291 #define FBIO_WID_FREE (FIOC|31)
294 292 #define FBIO_WID_PUT (FIOC|32)
295 293 #define FBIO_WID_GET (FIOC|33)
296 294
297 295 #define FBIO_DEVID (FIOC|34)
298 296 #define FBIO_U_RST (FIOC|35)
299 297 #define FBIO_FULLSCREEN_ELIMINATION_GROUPS (FIOC|36)
300 298 #define FBIO_WID_DBL_SET (FIOC|37)
301 299 #define FBIOVRTOFFSET (FIOC|38)
302 300
301 +struct gfxfb_info {
302 + uint16_t terminal_origin_x;
303 + uint16_t terminal_origin_y;
304 + uint32_t pitch;
305 + uint16_t font_width;
306 + uint16_t font_height;
307 + uint8_t red_mask_size;
308 + uint8_t red_field_position;
309 + uint8_t green_mask_size;
310 + uint8_t green_field_position;
311 + uint8_t blue_mask_size;
312 + uint8_t blue_field_position;
313 +};
314 +
303 315 struct cg6_info {
304 316 ushort_t accessible_width; /* accessible bytes in scanline */
305 317 ushort_t accessible_height; /* number of accessible scanlines */
306 318 ushort_t line_bytes; /* number of bytes/scanline */
307 319 ushort_t hdb_capable; /* can this thing hardware db? */
308 320 ushort_t vmsize; /* this is Mb of video memory */
309 321 uchar_t boardrev; /* board revision # */
310 322 uchar_t slot; /* sbus slot # */
311 323 uint_t pad1; /* expansion */
312 324 };
313 325
314 326 struct s3_info {
315 327 ushort_t accessible_width; /* accessible bytes in scanline */
316 328 ushort_t accessible_height; /* number of accessible scanlines */
317 329 ushort_t line_bytes; /* number of bytes/scanline */
318 330 ushort_t hdb_capable; /* can this thing hardware db? */
319 331 ushort_t vmsize; /* this is Mb of video memory */
320 332 uchar_t boardrev; /* board revision # */
321 333 uchar_t slot; /* sbus slot # */
322 334 uint_t pad1; /* expansion */
323 335 };
324 336
325 337 struct p9000_info {
326 338 ushort_t accessible_width; /* accessible bytes in scanline */
327 339 ushort_t accessible_height; /* number of accessible scanlines */
328 340 ushort_t line_bytes; /* number of bytes/scanline */
329 341 ushort_t hdb_capable; /* can this thing hardware db? */
330 342 ushort_t vmsize; /* this is Mb of video memory */
331 343 uchar_t boardrev; /* board revision # */
332 344 uchar_t slot; /* sbus slot # */
333 345 uint_t pad1; /* expansion */
334 346 };
335 347
336 348 struct p9100_info {
337 349 ushort_t accessible_width; /* accessible bytes in scanline */
338 350 ushort_t accessible_height; /* number of accessible scanlines */
339 351 ushort_t line_bytes; /* number of bytes/scanline */
340 352 ushort_t hdb_capable; /* can this thing hardware db? */
341 353 ushort_t vmsize; /* this is Mb of video memory */
342 354 uchar_t boardrev; /* board revision # */
343 355 uchar_t slot; /* sbus slot # */
344 356 uint_t pad1; /* expansion */
345 357 };
346 358
347 359 struct wd90c24a2_info {
348 360 ushort_t accessible_width; /* accessible bytes in scanline */
349 361 ushort_t accessible_height; /* number of accessible scanlines */
350 362 ushort_t line_bytes; /* number of bytes/scanline */
351 363 ushort_t hdb_capable; /* can this thing hardware db? */
352 364 ushort_t vmsize; /* this is Mb of video memory */
353 365 uchar_t boardrev; /* board revision # */
354 366 uchar_t slot; /* sbus slot # */
355 367 uint_t pad1; /* expansion */
356 368 };
357 369
358 370 #define MON_TYPE_STEREO 0x8 /* stereo display */
359 371 #define MON_TYPE_0_OFFSET 0x4 /* black level 0 ire instead of 7.5 */
360 372 #define MON_TYPE_OVERSCAN 0x2 /* overscan */
361 373 #define MON_TYPE_GRAY 0x1 /* greyscale monitor */
362 374
363 375 struct mon_info {
364 376 uint_t mon_type; /* bit array: defined above */
365 377 uint_t pixfreq; /* pixel frequency in Hz */
366 378 uint_t hfreq; /* horizontal freq in Hz */
367 379 uint_t vfreq; /* vertical freq in Hz */
368 380 uint_t vsync; /* vertical sync in scanlines */
369 381 uint_t hsync; /* horizontal sync in pixels */
370 382 /* these are in pixel units */
371 383 ushort_t hfporch; /* horizontal front porch */
372 384 ushort_t hbporch; /* horizontal back porch */
373 385 ushort_t vfporch; /* vertical front porch */
374 386 ushort_t vbporch; /* vertical back porch */
375 387 };
376 388
377 389
378 390 #define FBIOGXINFO (FIOC|39)
379 391 #define FBIOMONINFO (FIOC|40)
380 392
381 393 /*
382 394 * Color map I/O.
383 395 */
384 396 struct fbcmap_i {
385 397 unsigned int flags; /* see below */
386 398 int id; /* colormap id for multiple cmaps */
387 399 int index; /* first element (0 origin) */
388 400 int count; /* number of elements */
389 401 unsigned char *red; /* red color map elements */
390 402 unsigned char *green; /* green color map elements */
391 403 unsigned char *blue; /* blue color map elements */
392 404 };
393 405
394 406 #ifdef _SYSCALL32
395 407
396 408 struct fbcmap_i32 {
397 409 uint32_t flags; /* see below */
398 410 int32_t id; /* colormap id for multiple cmaps */
399 411 int32_t index; /* first element (0 origin) */
400 412 int32_t count; /* number of elements */
401 413 caddr32_t red; /* red color map elements */
402 414 caddr32_t green; /* green color map elements */
403 415 caddr32_t blue; /* blue color map elements */
404 416 };
405 417
406 418 #endif /* _SYSCALL32 */
407 419
408 420 #define FB_CMAP_BLOCK 0x1 /* wait for vrt before returning */
409 421 #define FB_CMAP_KERNEL 0x2 /* called within kernel */
410 422
411 423 #define FBIOPUTCMAPI (FIOC|41)
412 424 #define FBIOGETCMAPI (FIOC|42)
413 425
414 426 /* assigning a given window id to a pixrect - special for PHIGS */
415 427 #define FBIO_ASSIGNWID (FIOC|43)
416 428
417 429 /* assigning a given window to be stereo */
418 430 #define FBIO_STEREO (FIOC|44)
419 431 #define FB_WIN_STEREO 0x2
420 432
421 433 #endif /* !ASM */
422 434
423 435 /* frame buffer type codes */
424 436 #define FBTYPE_NOTYPE (-1) /* for backwards compatibility */
425 437 #define FBTYPE_SUN1BW 0 /* Multibus mono */
426 438 #define FBTYPE_SUN1COLOR 1 /* Multibus color */
427 439 #define FBTYPE_SUN2BW 2 /* memory mono */
428 440 #define FBTYPE_SUN2COLOR 3 /* color w/rasterop chips */
429 441 #define FBTYPE_SUN2GP 4 /* GP1/GP2 */
430 442 #define FBTYPE_SUN5COLOR 5 /* RoadRunner accelerator */
431 443 #define FBTYPE_SUN3COLOR 6 /* memory color */
432 444 #define FBTYPE_MEMCOLOR 7 /* memory 24-bit */
433 445 #define FBTYPE_SUN4COLOR 8 /* memory color w/overlay */
434 446
435 447 #define FBTYPE_NOTSUN1 9 /* reserved for customer */
436 448 #define FBTYPE_NOTSUN2 10 /* reserved for customer */
437 449 #define FBTYPE_NOTSUN3 11 /* reserved for customer */
438 450
439 451 #define FBTYPE_SUNFAST_COLOR 12 /* accelerated 8bit */
440 452 #define FBTYPE_SUNROP_COLOR 13 /* MEMCOLOR with rop h/w */
441 453 #define FBTYPE_SUNFB_VIDEO 14 /* Simple video mixing */
442 454 #define FBTYPE_SUNGIFB 15 /* medical image */
443 455 #define FBTYPE_SUNGPLAS 16 /* plasma panel */
444 456 #define FBTYPE_SUNGP3 17 /* cg12 running gpsi microcode */
445 457 #define FBTYPE_SUNGT 18 /* gt graphics accelerator */
446 458 #define FBTYPE_SUNLEO 19 /* zx graphics accelerator */
447 459 #define FBTYPE_MDICOLOR 20 /* cgfourteen framebuffer */
448 460
449 461 #define FBTYPE_LASTPLUSONE 21 /* max number of fbs (change as add) */
450 462
451 463 #ifdef __cplusplus
452 464 }
453 465 #endif
454 466
455 467 #endif /* _SYS_FBIO_H */
|
↓ open down ↓ |
143 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX