struct fb_info | | fb_var_screeninfo | | fb_fix_screeninfo | | fb_cmap | | modename[40] struct fb_ops ---|--->ops on var | | fb_open | | fb_release | | fb_ioctl | | fb_mmap struct fbgen_hwswitch -|-> detect | | encode_fix | | encode_var | | decode_fix | | decode_var | | get_var | | set_var | | getcolreg | | setcolreg | | pan_display | | blank | | set_disp
struct fbgen_hwswitch 结构是硬件操作的抽象,不是必须的,但有时很重要。3.2 fbmem.c
fbmem.c 是frambuffer驱动的核心,他向上给应用程序提供了系统调用接口,向下对特定的硬件提供底层的驱动接口。底层驱动可以通过接口向内核注册自己。fbmem.c提供了frambuffer驱动的所有接口代码,从而避免重复的工作。
1) 全局变量