From 1e2f09bb5b0e56cc5210110d5ad249c504a69a92 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Tue, 1 May 2012 21:16:57 -0400 Subject: initial check-in --- include/linux/fb.h | 341 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 341 insertions(+) create mode 100644 include/linux/fb.h (limited to 'include/linux/fb.h') diff --git a/include/linux/fb.h b/include/linux/fb.h new file mode 100644 index 0000000..3571ee7 --- /dev/null +++ b/include/linux/fb.h @@ -0,0 +1,341 @@ +#ifndef _LINUX_FB_H +#define _LINUX_FB_H + +#include +#include + +struct dentry; + +#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_TEXT_SVGA_GROUP 8 +#define FB_AUX_TEXT_SVGA_MASK 7 +#define FB_AUX_TEXT_SVGA_STEP2 8 +#define FB_AUX_TEXT_SVGA_STEP4 9 +#define FB_AUX_TEXT_SVGA_STEP8 10 +#define FB_AUX_TEXT_SVGA_STEP16 11 +#define FB_AUX_TEXT_SVGA_LAST 15 + +#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_TRIDENT_TGUI 50 +#define FB_ACCEL_TRIDENT_3DIMAGE 51 +#define FB_ACCEL_TRIDENT_BLADE3D 52 +#define FB_ACCEL_TRIDENT_BLADEXP 53 +#define FB_ACCEL_CIRRUS_ALPINE 53 +#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; + uint32_t smem_len; + uint32_t type; + uint32_t type_aux; + uint32_t visual; + uint16_t xpanstep; + uint16_t ypanstep; + uint16_t ywrapstep; + uint32_t line_length; + unsigned long mmio_start; + uint32_t mmio_len; + uint32_t accel; + uint16_t reserved[3]; +}; + +struct fb_bitfield { + uint32_t offset; + uint32_t length; + uint32_t msb_right; +}; + +#define FB_NONSTD_HAM 1 +#define FB_NONSTD_REV_PIX_IN_B 2 + +#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_ODD_FLD_FIRST 4 +#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 { + uint32_t xres; + uint32_t yres; + uint32_t xres_virtual; + uint32_t yres_virtual; + uint32_t xoffset; + uint32_t yoffset; + + uint32_t bits_per_pixel; + uint32_t grayscale; + + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + + uint32_t nonstd; + + uint32_t activate; + + uint32_t height; + uint32_t width; + + uint32_t accel_flags; + + uint32_t pixclock; + uint32_t left_margin; + uint32_t right_margin; + uint32_t upper_margin; + uint32_t lower_margin; + uint32_t hsync_len; + uint32_t vsync_len; + uint32_t sync; + uint32_t vmode; + uint32_t rotate; + uint32_t reserved[5]; +}; + +struct fb_cmap { + uint32_t start; + uint32_t len; + uint16_t *red; + uint16_t *green; + uint16_t *blue; + uint16_t *transp; +}; + +struct fb_con2fbmap { + uint32_t console; + uint32_t framebuffer; +}; + +#define VESA_NO_BLANKING 0 +#define VESA_VSYNC_SUSPEND 1 +#define VESA_HSYNC_SUSPEND 2 +#define VESA_POWERDOWN 3 + +#define FB_BLANK_UNBLANK VESA_NO_BLANKING +#define FB_BLANK_NORMAL (VESA_NO_BLANKING + 1) +#define FB_BLANK_VSYNC_SUSPEND (VESA_VSYNC_SUSPEND + 1) +#define FB_BLANK_HSYNC_SUSPEND (VESA_HSYNC_SUSPEND + 1) +#define 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 { + uint32_t flags; + uint32_t count; + uint32_t vcount; + uint32_t hcount; + uint32_t reserved[4]; +}; + +#define ROP_COPY 0 +#define ROP_XOR 1 + +struct fb_copyarea { + uint32_t dx; + uint32_t dy; + uint32_t width; + uint32_t height; + uint32_t sx; + uint32_t sy; +}; + +struct fb_fillrect { + uint32_t dx; + uint32_t dy; + uint32_t width; + uint32_t height; + uint32_t color; + uint32_t rop; +}; + +struct fb_image { + uint32_t dx; + uint32_t dy; + uint32_t width; + uint32_t height; + uint32_t fg_color; + uint32_t bg_color; + uint8_t 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 { + uint16_t x, y; +}; + +struct fb_cursor { + uint16_t set; + uint16_t enable; + uint16_t rop; + const char *mask; + struct fbcurpos hot; + struct fb_image image; +}; + +#define FB_BACKLIGHT_LEVELS 128 +#define FB_BACKLIGHT_MAX 0xFF + +#endif -- cgit v1.2.1