一、概述
帧缓冲(framebuffer)是linux系统为显示设备提供的一个接口,它将显示缓存区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写。
帧缓冲设备为标准字符设备,主设备号为29,对应于/dev/fb%d。
二、数据结构
<include/linux/fb.h>
/* 帧缓冲设备 */
struct fb_info {
struct fb_var_screeninfo var; //可变参数
struct fb_fix_screeninfo fix; //固定参数
struct fb_ops *fbops; //帧缓冲操作
union {
char __iomem *screen_base; //虚拟基地址
};
unsigned long screen_size; //虚拟地址大小
void *par; //私有数据地址
};
<include/linux/fb.h>
/* 帧缓冲操作 */
struct fb_ops {
/* 打开 */
int (*fb_open)(struct fb_info *info, int user);
/* 关闭 */
int (*fb_release)(struct fb_info *info, int user);
/* 检测可变参数,并调整到支持的值 */
int (*fb_check_var)(struct fb_var_screeninfo *var, struct fb_info *info);
/* 根据info->var设置video模式 */
int (*fb_set_par)(struct fb_info