/****************************************************************************
 ****************************************************************************
 ***
 ***   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.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _LINUX_FB_H
#define _LINUX_FB_H
#include <linux/types.h>
#include <linux/i2c.h>
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_MAX 32  
#define FBIOGET_VSCREENINFO 0x4600
#define FBIOPUT_VSCREENINFO 0x4601
#define FBIOGET_FSCREENINFO 0x4602
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FBIOGETCMAP 0x4604
#define FBIOPUTCMAP 0x4605
#define FBIOPAN_DISPLAY 0x4606
#define FBIO_CURSOR _IOWR('F', 0x08, struct fb_cursor)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FBIOGET_CON2FBMAP 0x460F
#define FBIOPUT_CON2FBMAP 0x4610
#define FBIOBLANK 0x4611  
#define FBIOGET_VBLANK _IOR('F', 0x12, struct fb_vblank)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FBIO_ALLOC 0x4613
#define FBIO_FREE 0x4614
#define FBIOGET_GLYPH 0x4615
#define FBIOGET_HWCINFO 0x4616
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FBIOPUT_MODEINFO 0x4617
#define FBIOGET_DISPINFO 0x4618
#define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)
#define FB_TYPE_PACKED_PIXELS 0  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_TYPE_PLANES 1  
#define FB_TYPE_INTERLEAVED_PLANES 2  
#define FB_TYPE_TEXT 3  
#define FB_TYPE_VGA_PLANES 4  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_TYPE_FOURCC 5  
#define FB_AUX_TEXT_MDA 0  
#define FB_AUX_TEXT_CGA 1  
#define FB_AUX_TEXT_S3_MMIO 2  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#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  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#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  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#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  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_VISUAL_MONO01 0  
#define FB_VISUAL_MONO10 1  
#define FB_VISUAL_TRUECOLOR 2  
#define FB_VISUAL_PSEUDOCOLOR 3  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_VISUAL_DIRECTCOLOR 4  
#define FB_VISUAL_STATIC_PSEUDOCOLOR 5  
#define FB_VISUAL_FOURCC 6  
#define FB_ACCEL_NONE 0  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_ATARIBLITT 1  
#define FB_ACCEL_AMIGABLITT 2  
#define FB_ACCEL_S3_TRIO64 3  
#define FB_ACCEL_NCR_77C32BLT 4  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_S3_VIRGE 5  
#define FB_ACCEL_ATI_MACH64GX 6  
#define FB_ACCEL_DEC_TGA 7  
#define FB_ACCEL_ATI_MACH64CT 8  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_ATI_MACH64VT 9  
#define FB_ACCEL_ATI_MACH64GT 10  
#define FB_ACCEL_SUN_CREATOR 11  
#define FB_ACCEL_SUN_CGSIX 12  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_SUN_LEO 13  
#define FB_ACCEL_IMS_TWINTURBO 14  
#define FB_ACCEL_3DLABS_PERMEDIA2 15  
#define FB_ACCEL_MATROX_MGA2064W 16  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#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  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_MATROX_MGAG200 21  
#define FB_ACCEL_SUN_CG14 22  
#define FB_ACCEL_SUN_BWTWO 23  
#define FB_ACCEL_SUN_CGTHREE 24  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_SUN_TCX 25  
#define FB_ACCEL_MATROX_MGAG400 26  
#define FB_ACCEL_NV3 27  
#define FB_ACCEL_NV4 28  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_NV5 29  
#define FB_ACCEL_CT_6555x 30  
#define FB_ACCEL_3DFX_BANSHEE 31  
#define FB_ACCEL_ATI_RAGE128 32  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_IGS_CYBER2000 33  
#define FB_ACCEL_IGS_CYBER2010 34  
#define FB_ACCEL_IGS_CYBER5000 35  
#define FB_ACCEL_SIS_GLAMOUR 36  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_3DLABS_PERMEDIA3 37  
#define FB_ACCEL_ATI_RADEON 38  
#define FB_ACCEL_I810 39  
#define FB_ACCEL_SIS_GLAMOUR_2 40  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_SIS_XABRE 41  
#define FB_ACCEL_I830 42  
#define FB_ACCEL_NV_10 43  
#define FB_ACCEL_NV_20 44  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#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  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_OMAP1610 49  
#define FB_ACCEL_TRIDENT_TGUI 50  
#define FB_ACCEL_TRIDENT_3DIMAGE 51  
#define FB_ACCEL_TRIDENT_BLADE3D 52  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_TRIDENT_BLADEXP 53  
#define FB_ACCEL_CIRRUS_ALPINE 53  
#define FB_ACCEL_NEOMAGIC_NM2070 90  
#define FB_ACCEL_NEOMAGIC_NM2090 91  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_NEOMAGIC_NM2093 92  
#define FB_ACCEL_NEOMAGIC_NM2097 93  
#define FB_ACCEL_NEOMAGIC_NM2160 94  
#define FB_ACCEL_NEOMAGIC_NM2200 95  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_NEOMAGIC_NM2230 96  
#define FB_ACCEL_NEOMAGIC_NM2360 97  
#define FB_ACCEL_NEOMAGIC_NM2380 98  
#define FB_ACCEL_PXA3XX 99  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_SAVAGE4 0x80  
#define FB_ACCEL_SAVAGE3D 0x81  
#define FB_ACCEL_SAVAGE3D_MV 0x82  
#define FB_ACCEL_SAVAGE2000 0x83  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#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  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_PROSAVAGE_PM 0x88  
#define FB_ACCEL_PROSAVAGE_KM 0x89  
#define FB_ACCEL_S3TWISTER_P 0x8a  
#define FB_ACCEL_S3TWISTER_K 0x8b  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACCEL_SUPERSAVAGE 0x8c  
#define FB_ACCEL_PROSAVAGE_DDR 0x8d  
#define FB_ACCEL_PROSAVAGE_DDRK 0x8e  
#define FB_ACCEL_PUV3_UNIGFX 0xa0  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_CAP_FOURCC 1  
struct fb_fix_screeninfo {
 char id[16];
 unsigned long smem_start;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 smem_len;
 __u32 type;
 __u32 type_aux;
 __u32 visual;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u16 xpanstep;
 __u16 ypanstep;
 __u16 ywrapstep;
 __u32 line_length;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned long mmio_start;
 __u32 mmio_len;
 __u32 accel;
 __u16 capabilities;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u16 reserved[2];
};
struct fb_bitfield {
 __u32 offset;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 length;
 __u32 msb_right;
};
#define FB_NONSTD_HAM 1  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_NONSTD_REV_PIX_IN_B 2  
#define FB_ACTIVATE_NOW 0  
#define FB_ACTIVATE_NXTOPEN 1  
#define FB_ACTIVATE_TEST 2  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACTIVATE_MASK 15
#define FB_ACTIVATE_VBL 16  
#define FB_CHANGE_CMAP_VBL 32  
#define FB_ACTIVATE_ALL 64  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ACTIVATE_FORCE 128  
#define FB_ACTIVATE_INV_MODE 256  
#define FB_ACCELF_TEXT 1  
#define FB_SYNC_HOR_HIGH_ACT 1  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_SYNC_VERT_HIGH_ACT 2  
#define FB_SYNC_EXT 4  
#define FB_SYNC_COMP_HIGH_ACT 8  
#define FB_SYNC_BROADCAST 16  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_SYNC_ON_GREEN 32  
#define FB_VMODE_NONINTERLACED 0  
#define FB_VMODE_INTERLACED 1  
#define FB_VMODE_DOUBLE 2  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_VMODE_ODD_FLD_FIRST 4  
#define FB_VMODE_MASK 255
#define FB_VMODE_YWRAP 256  
#define FB_VMODE_SMOOTH_XPAN 512  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_VMODE_CONUPDATE 512  
#define FB_FLAG_RATIO_4_3 64
#define FB_FLAG_RATIO_16_9 128
#define FB_FLAG_PIXEL_REPEAT 256
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_FLAG_PREFERRED 512
#define FB_FLAG_HW_CAPABLE 1024
#define FB_ROTATE_UR 0
#define FB_ROTATE_CW 1
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_ROTATE_UD 2
#define FB_ROTATE_CCW 3
#define PICOS2KHZ(a) (1000000000UL/(a))
#define KHZ2PICOS(a) (1000000000UL/(a))
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct fb_var_screeninfo {
 __u32 xres;
 __u32 yres;
 __u32 xres_virtual;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 yres_virtual;
 __u32 xoffset;
 __u32 yoffset;
 __u32 bits_per_pixel;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 grayscale;
 struct fb_bitfield red;
 struct fb_bitfield green;
 struct fb_bitfield blue;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct fb_bitfield transp;
 __u32 nonstd;
 __u32 activate;
 __u32 height;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 width;
 __u32 accel_flags;
 __u32 pixclock;
 __u32 left_margin;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 right_margin;
 __u32 upper_margin;
 __u32 lower_margin;
 __u32 hsync_len;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 vsync_len;
 __u32 sync;
 __u32 vmode;
 __u32 rotate;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 colorspace;
 __u32 reserved[4];
};
struct fb_cmap {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 start;
 __u32 len;
 __u16 *red;
 __u16 *green;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u16 *blue;
 __u16 *transp;
};
struct fb_con2fbmap {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 console;
 __u32 framebuffer;
};
#define VESA_NO_BLANKING 0
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VESA_VSYNC_SUSPEND 1
#define VESA_HSYNC_SUSPEND 2
#define VESA_POWERDOWN 3
enum {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 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,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 FB_BLANK_POWERDOWN = VESA_POWERDOWN + 1
};
#define FB_VBLANK_VBLANKING 0x001  
#define FB_VBLANK_HBLANKING 0x002  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_VBLANK_HAVE_VBLANK 0x004  
#define FB_VBLANK_HAVE_HBLANK 0x008  
#define FB_VBLANK_HAVE_COUNT 0x010  
#define FB_VBLANK_HAVE_VCOUNT 0x020  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_VBLANK_HAVE_HCOUNT 0x040  
#define FB_VBLANK_VSYNCING 0x080  
#define FB_VBLANK_HAVE_VSYNC 0x100  
struct fb_vblank {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 flags;
 __u32 count;
 __u32 vcount;
 __u32 hcount;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 reserved[4];
};
#define ROP_COPY 0
#define ROP_XOR 1
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct fb_copyarea {
 __u32 dx;
 __u32 dy;
 __u32 width;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 height;
 __u32 sx;
 __u32 sy;
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct fb_fillrect {
 __u32 dx;
 __u32 dy;
 __u32 width;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 height;
 __u32 color;
 __u32 rop;
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct fb_image {
 __u32 dx;
 __u32 dy;
 __u32 width;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u32 height;
 __u32 fg_color;
 __u32 bg_color;
 __u8 depth;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 const char *data;
 struct fb_cmap cmap;
};
#define FB_CUR_SETIMAGE 0x01
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_CUR_SETPOS 0x02
#define FB_CUR_SETHOT 0x04
#define FB_CUR_SETCMAP 0x08
#define FB_CUR_SETSHAPE 0x10
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define FB_CUR_SETSIZE 0x20
#define FB_CUR_SETALL 0xFF
struct fbcurpos {
 __u16 x, y;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
struct fb_cursor {
 __u16 set;
 __u16 enable;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u16 rop;
 const char *mask;
 struct fbcurpos hot;
 struct fb_image image;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
#endif

