18.2.3 Linux帧缓冲相关数据结构与函数
1、fb_info结构体
帧缓冲设备最关键的一个数据结构体是fb_info结构体,FBI中包括了关于帧缓冲设备属性和操作的完整描述。
Struct fb_info、
{
struct fb_var_screeninfo var; /* Current var */
struct fb_fix_screeninfo fix; /* Current fix */
……
Struct fb_ops *fbops;fb_ops,帧缓冲操作
……
}
每一个帧缓冲设备都必须对应一个FBI。
2、fb_ops结构体
FBI的成员变量fbops为指向底层操作的函数的指针,这些函数是需要驱动程序开发人员编写的。
struct fb_ops {
……
/* 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);
……
}
fb_ops的成员函数fb_check_var用于检查可以修改的屏幕参数并调整到合适的值,而fb_set_par则使得用户设置的屏幕参数在硬件上有效。