📄 fb.h
字号:
__u32 bg_color; __u8 depth; /* Depth of the image */ const char *data; /* Pointer to image data */ struct fb_cmap cmap; /* color map info */};/* * hardware cursor control */#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 0xFFstruct fbcurpos { __u16 x, y;};struct fb_cursor { __u16 set; /* what to set */ __u16 enable; /* cursor on/off */ __u16 rop; /* bitop operation */ const char *mask; /* cursor mask bits */ struct fbcurpos hot; /* cursor hot spot */ struct fb_image image; /* Cursor image */};#ifdef CONFIG_FB_BACKLIGHT/* Settings for the generic backlight code */#define FB_BACKLIGHT_LEVELS 128#define FB_BACKLIGHT_MAX 0xFF#endif#ifdef __KERNEL__#include <linux/fs.h>#include <linux/init.h>#include <linux/device.h>#include <linux/workqueue.h>#include <linux/notifier.h>#include <linux/list.h>#include <linux/backlight.h>#include <asm/io.h>struct vm_area_struct;struct fb_info;struct device;struct file;/* Definitions below are used in the parsed monitor specs */#define FB_DPMS_ACTIVE_OFF 1#define FB_DPMS_SUSPEND 2#define FB_DPMS_STANDBY 4#define FB_DISP_DDI 1#define FB_DISP_ANA_700_300 2#define FB_DISP_ANA_714_286 4#define FB_DISP_ANA_1000_400 8#define FB_DISP_ANA_700_000 16#define FB_DISP_MONO 32#define FB_DISP_RGB 64#define FB_DISP_MULTI 128#define FB_DISP_UNKNOWN 256#define FB_SIGNAL_NONE 0#define FB_SIGNAL_BLANK_BLANK 1#define FB_SIGNAL_SEPARATE 2#define FB_SIGNAL_COMPOSITE 4#define FB_SIGNAL_SYNC_ON_GREEN 8#define FB_SIGNAL_SERRATION_ON 16#define FB_MISC_PRIM_COLOR 1#define FB_MISC_1ST_DETAIL 2 /* First Detailed Timing is preferred */struct fb_chroma { __u32 redx; /* in fraction of 1024 */ __u32 greenx; __u32 bluex; __u32 whitex; __u32 redy; __u32 greeny; __u32 bluey; __u32 whitey;};struct fb_monspecs { struct fb_chroma chroma; struct fb_videomode *modedb; /* mode database */ __u8 manufacturer[4]; /* Manufacturer */ __u8 monitor[14]; /* Monitor String */ __u8 serial_no[14]; /* Serial Number */ __u8 ascii[14]; /* ? */ __u32 modedb_len; /* mode database length */ __u32 model; /* Monitor Model */ __u32 serial; /* Serial Number - Integer */ __u32 year; /* Year manufactured */ __u32 week; /* Week Manufactured */ __u32 hfmin; /* hfreq lower limit (Hz) */ __u32 hfmax; /* hfreq upper limit (Hz) */ __u32 dclkmin; /* pixelclock lower limit (Hz) */ __u32 dclkmax; /* pixelclock upper limit (Hz) */ __u16 input; /* display type - see FB_DISP_* */ __u16 dpms; /* DPMS support - see FB_DPMS_ */ __u16 signal; /* Signal Type - see FB_SIGNAL_* */ __u16 vfmin; /* vfreq lower limit (Hz) */ __u16 vfmax; /* vfreq upper limit (Hz) */ __u16 gamma; /* Gamma - in fractions of 100 */ __u16 gtf : 1; /* supports GTF */ __u16 misc; /* Misc flags - see FB_MISC_* */ __u8 version; /* EDID version... */ __u8 revision; /* ...and revision */ __u8 max_x; /* Maximum horizontal size (cm) */ __u8 max_y; /* Maximum vertical size (cm) */};struct fb_cmap_user { __u32 start; /* First entry */ __u32 len; /* Number of entries */ __u16 __user *red; /* Red values */ __u16 __user *green; __u16 __user *blue; __u16 __user *transp; /* transparency, can be NULL */};struct fb_image_user { __u32 dx; /* Where to place image */ __u32 dy; __u32 width; /* Size of image */ __u32 height; __u32 fg_color; /* Only used when a mono bitmap */ __u32 bg_color; __u8 depth; /* Depth of the image */ const char __user *data; /* Pointer to image data */ struct fb_cmap_user cmap; /* color map info */};struct fb_cursor_user { __u16 set; /* what to set */ __u16 enable; /* cursor on/off */ __u16 rop; /* bitop operation */ const char __user *mask; /* cursor mask bits */ struct fbcurpos hot; /* cursor hot spot */ struct fb_image_user image; /* Cursor image */};/* * Register/unregister for framebuffer events *//* The resolution of the passed in fb_info about to change */ #define FB_EVENT_MODE_CHANGE 0x01/* The display on this fb_info is beeing suspended, no access to the * framebuffer is allowed any more after that call returns */#define FB_EVENT_SUSPEND 0x02/* The display on this fb_info was resumed, you can restore the display * if you own it */#define FB_EVENT_RESUME 0x03/* An entry from the modelist was removed */#define FB_EVENT_MODE_DELETE 0x04/* A driver registered itself */#define FB_EVENT_FB_REGISTERED 0x05/* A driver unregistered itself */#define FB_EVENT_FB_UNREGISTERED 0x06/* CONSOLE-SPECIFIC: get console to framebuffer mapping */#define FB_EVENT_GET_CONSOLE_MAP 0x07/* CONSOLE-SPECIFIC: set console to framebuffer mapping */#define FB_EVENT_SET_CONSOLE_MAP 0x08/* A display blank is requested */#define FB_EVENT_BLANK 0x09/* Private modelist is to be replaced */#define FB_EVENT_NEW_MODELIST 0x0A/* The resolution of the passed in fb_info about to change and all vc's should be changed */#define FB_EVENT_MODE_CHANGE_ALL 0x0Bstruct fb_event { struct fb_info *info; void *data;};extern int fb_register_client(struct notifier_block *nb);extern int fb_unregister_client(struct notifier_block *nb);extern int fb_notifier_call_chain(unsigned long val, void *v);/* * Pixmap structure definition * * The purpose of this structure is to translate data * from the hardware independent format of fbdev to what * format the hardware needs. */#define FB_PIXMAP_DEFAULT 1 /* used internally by fbcon */#define FB_PIXMAP_SYSTEM 2 /* memory is in system RAM */#define FB_PIXMAP_IO 4 /* memory is iomapped */#define FB_PIXMAP_SYNC 256 /* set if GPU can DMA */struct fb_pixmap { u8 *addr; /* pointer to memory */ u32 size; /* size of buffer in bytes */ u32 offset; /* current offset to buffer */ u32 buf_align; /* byte alignment of each bitmap */ u32 scan_align; /* alignment per scanline */ u32 access_align; /* alignment per read/write (bits) */ u32 flags; /* see FB_PIXMAP_* */ /* access methods */ void (*writeio)(struct fb_info *info, void __iomem *dst, void *src, unsigned int size); void (*readio) (struct fb_info *info, void *dst, void __iomem *src, unsigned int size);};/* * Frame buffer operations * * LOCKING NOTE: those functions must _ALL_ be called with the console * semaphore held, this is the only suitable locking mechanism we have * in 2.6. Some may be called at interrupt time at this point though. */struct fb_ops { /* open/release and usage marking */ struct module *owner; int (*fb_open)(struct fb_info *info, int user); int (*fb_release)(struct fb_info *info, int user); /* For framebuffers with strange non linear layouts or that do not * work with normal memory mapped access */ ssize_t (*fb_read)(struct file *file, char __user *buf, size_t count, loff_t *ppos); ssize_t (*fb_write)(struct file *file, const char __user *buf, size_t count, loff_t *ppos); /* checks var and eventually tweaks it to something supported, * DO NOT MODIFY PAR */ int (*fb_check_var)(struct fb_var_screeninfo *var, struct fb_info *info); /* set the video mode according to info->var */ int (*fb_set_par)(struct fb_info *info); /* set color register */ int (*fb_setcolreg)(unsigned regno, unsigned red, unsigned green, unsigned blue, unsigned transp, struct fb_info *info); /* set color registers in batch */ int (*fb_setcmap)(struct fb_cmap *cmap, struct fb_info *info); /* blank display */ int (*fb_blank)(int blank, struct fb_info *info); /* pan display */ int (*fb_pan_display)(struct fb_var_screeninfo *var, struct fb_info *info); /* Draws a rectangle */ void (*fb_fillrect) (struct fb_info *info, const struct fb_fillrect *rect); /* Copy data from area to another */ void (*fb_copyarea) (struct fb_info *info, const struct fb_copyarea *region); /* Draws a image to the display */ void (*fb_imageblit) (struct fb_info *info, const struct fb_image *image); /* Draws cursor */ int (*fb_cursor) (struct fb_info *info, struct fb_cursor *cursor); /* Rotates the display */ void (*fb_rotate)(struct fb_info *info, int angle); /* wait for blit idle, optional */ int (*fb_sync)(struct fb_info *info); /* perform fb specific ioctl (optional) */ int (*fb_ioctl)(struct fb_info *info, unsigned int cmd, unsigned long arg); /* Handle 32bit compat ioctl (optional) */ int (*fb_compat_ioctl)(struct fb_info *info, unsigned cmd, unsigned long arg); /* perform fb specific mmap */ int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma); /* save current hardware state */ void (*fb_save_state)(struct fb_info *info); /* restore saved state */ void (*fb_restore_state)(struct fb_info *info);};#ifdef CONFIG_FB_TILEBLITTING#define FB_TILE_CURSOR_NONE 0#define FB_TILE_CURSOR_UNDERLINE 1#define FB_TILE_CURSOR_LOWER_THIRD 2#define FB_TILE_CURSOR_LOWER_HALF 3#define FB_TILE_CURSOR_TWO_THIRDS 4#define FB_TILE_CURSOR_BLOCK 5struct fb_tilemap { __u32 width; /* width of each tile in pixels */ __u32 height; /* height of each tile in scanlines */ __u32 depth; /* color depth of each tile */ __u32 length; /* number of tiles in the map */ const __u8 *data; /* actual tile map: a bitmap array, packed to the nearest byte */};struct fb_tilerect { __u32 sx; /* origin in the x-axis */ __u32 sy; /* origin in the y-axis */ __u32 width; /* number of tiles in the x-axis */ __u32 height; /* number of tiles in the y-axis */ __u32 index; /* what tile to use: index to tile map */ __u32 fg; /* foreground color */ __u32 bg; /* background color */ __u32 rop; /* raster operation */};struct fb_tilearea { __u32 sx; /* source origin in the x-axis */ __u32 sy; /* source origin in the y-axis */ __u32 dx; /* destination origin in the x-axis */ __u32 dy; /* destination origin in the y-axis */ __u32 width; /* number of tiles in the x-axis */ __u32 height; /* number of tiles in the y-axis */};struct fb_tileblit { __u32 sx; /* origin in the x-axis */ __u32 sy; /* origin in the y-axis */ __u32 width; /* number of tiles in the x-axis */ __u32 height; /* number of tiles in the y-axis */ __u32 fg; /* foreground color */ __u32 bg; /* background color */ __u32 length; /* number of tiles to draw */ __u32 *indices; /* array of indices to tile map */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -