tcx accepts the following ioctl(2) calls,
defined in <sys/fbio.h> and <sys/visual_io.h>, and implemented as described in fbio(7I).
FBIOGATTR | FBIOGCURSOR |
FBIOGTYPE | FBIOSCURPOS |
FBIOPUTCMAP | FBIOGCURPOS |
FBIOGETCMAP | FBIOGCURMAX |
FBIOSATTR | FBIOGXINFO |
FBIOSVIDEO | FBIOMONINFO |
FBIOGVIDEO | FBIOVRTOFFSET |
FBIOVERTICAL | VIS_GETIDENTIFIER |
FBIOSCURSOR | |
VIS_GETIDENTIFIER returns "SUNW,tcx".
Emulation mode (FBIOGATTR, FBIOSATTR) may be either FBTYPE_SUN3COLOR or FBTYPE_MEMCOLOR. Set emulation
mode to 21 (FBTYPE_LASTPLUSONE) to turn emulation off. Changes to emulation mode (via FBIOSATTR) take place immediately. Emulation may be turned
off manually by setting emu_type field of the fbsattr structure to 21. Emulation mode is reset to default on reboot.
FBIOPUTCMAP returns immediately, although the actual colormap update may be delayed until the next vertical retrace. If vertical retrace is currently in
progress, the new colormap takes effect immediately.
FBIOGETCMAP returns immediately with the currently-loaded colormap, unless a colormap write is pending (see above), in which case it waits until the colormap
is updated before returning. This may be used to synchronize software with colormap updates.
The size and linebytes values returned by FBIOGATTR, FBIOGTYPE and FBIOGXINFO are the sizes of the 8-bit framebuffer. The proper way to compute
the size of a framebuffer mapping is:
|
size=linebytes*height*bytes_per_pixel
|
The information returned in the dev_specific field by the FBIOGATTR ioctl is as follows:
dev_specific[0] is the tcx capabilities mask:
Name | Hex Value | Meaning |
STIP_ALIGN | 0xf | stipple alignment constraint |
C_PLANES | 0xf0 | # of control planes |
BLIT_WIDTH | 0xf00 | maximum blit width |
BLIT_HEIGHT | 0xf000 | maximum blit height |
STIP_ROP | 0x10000 | stipple-with-rop supported |
BLIT_ROP | 0x20000 | blit-with-rop supported |
24_BIT | 0x40000 | 24-bit support |
HW_CURSOR | 0x80000 | hardware cursor |
PLANE_MASK | 0x100000 | plane mask support for 8-bit stipple |
dev_specific[1] is the kernel address for 8-bit mapping. This is useful only to other device drivers, and should not be used outside the kernel.
|