struct fb_ops {
// 图形显示设备的驱动程序的名字
struct module *owner;
// 打开帧缓冲设备的回调函数
int (*fb_open)(struct fb_info *info, int user);
// 打开帧缓冲设备的回调函数
int (*fb_release)(struct fb_info *info, int user);
// 读取帧缓冲设备的回调函数
ssize_t (*fb_read)(struct fb_info *info, char __user *buf,
size_t count, loff_t *ppos);
// 写入帧缓冲设备的回调函数
ssize_t (*fb_write)(struct fb_info *info, const char __user *buf,
size_t count, loff_t *ppos);
// 检查并调整屏幕可变参数以使其符合设备支持的范围
int (*fb_check_var)(struct fb_var_screeninfo *var, struct fb_info *info);
// 设置屏幕可变参数
int (*fb_set_par)(struct fb_info *info);
// 设置屏幕颜色寄存器
int (*fb_setcolreg)(unsigned regno, unsigned red, unsigned green,
unsigned blue, unsigned transp, struct fb_info *info);
// 设置屏幕调色板
int (*fb_setcmap)(struct fb_cmap *cmap, struct fb_info *info);
// 使显示器进入或退出空白模式
int (*fb_blank)(int blank, struct fb_info *info);
// 平移显示区域
int (*fb_pan_display)(struct fb_var_screeninfo *var, struct fb_info *info);
// 在帧缓冲上绘制矩形
void (*fb_fillrect) (struct fb_info *info, const struct fb_fillrect *rect);
// 在帧缓冲上拷贝矩形
void (*fb_copyarea) (struct fb_info *info, const struct fb_copyarea *region);
// 在帧缓冲上绘制图像
void (*fb_imageblit) (struct fb_info *info, const struct fb_image *image);
// 在帧缓冲上绘制光标
int (*fb_cursor) (struct fb_info *info, struct fb_cursor *cursor);
// 等待块传输完成(可选)
int (*fb_sync)(struct fb_info *info);
// 执行特定于帧缓冲的 ioctl 命令(可选)
int (*fb_ioctl)(struct fb_info *info, unsigned int cmd,
unsigned long arg);
// 处理 32 位兼容的 ioctl 命令(可选)
int (*fb_compat_ioctl)(struct fb_info *info, unsigned cmd,
unsigned long arg);
// 执行特定于帧缓冲的内存映射
int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma);
// 根据给定的可变参数获取帧缓冲的能力
void (*fb_get_caps)(struct fb_info *info, struct fb_blit_caps *caps,
struct fb_var_screeninfo *var);
// 释放与帧缓冲相关的所有资源
void (*fb_destroy)(struct fb_info *info);
// 在进入 KDB 调试模式时调用,用于准备控制台
int (*fb_debug_enter)(struct fb_info *info);
// 在离开 KDB 调试模式时调用,用于恢复控制台
int (*fb_debug_leave)(struct fb_info *info);
};
直接开始下一节说明: 图形显示DRM管理框架