QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2175|回复: 4

请问/fb.h中结构体fb_info_gen是作什么用的?

[复制链接]
发表于 2005-11-3 12:55:54 | 显示全部楼层 |阅读模式
不是有fb_info结构体就行了吗?
请哪位解说一下这个结构体阿,多谢
发表于 2005-11-11 23:43:25 | 显示全部楼层
这个文件在哪儿啊?  我怎么不知道   
回复

使用道具 举报

发表于 2005-11-11 23:45:40 | 显示全部楼层
这个文件在哪儿啊?  我怎么不知道   
回复

使用道具 举报

 楼主| 发表于 2005-11-12 10:11:01 | 显示全部楼层
在arm-linux的ARM\arm-linux\include\linux\fb.h中啊
它的定义为
struct fb_info_gen {
    struct fb_info info;

    /* Entries for a generic frame buffer device */
    /* Yes, this starts looking like C++ */
    u_int parsize;
    struct fbgen_hwswitch *fbhw;

   /* From here on everything is device dependent */
};
现在我大概有些了解了,呵呵。fb_info结构体实际上只包含framebuffer的一些基本信息和针对上层(对用户层)的一些操作,而fb_info_gen结构体则多了fb_gen_hwswitch结构(该结构也在fb.h中定义),这实际上是一个通用的可以针对各各不同硬件(即LCD控制器)提供底层操作函数的调用,是面向底层的。它的定义如下:
struct fbgen_hwswitch {
    void (*detect)(void);
    int (*encode_fix)(struct fb_fix_screeninfo *fix, const void *par,
                      struct fb_info_gen *info);
    int (*decode_var)(const struct fb_var_screeninfo *var, void *par,
                      struct fb_info_gen *info);
    int (*encode_var)(struct fb_var_screeninfo *var, const void *par,
                      struct fb_info_gen *info);
    void (*get_par)(void *par, struct fb_info_gen *info);
    void (*set_par)(const void *par, struct fb_info_gen *info);
    int (*getcolreg)(unsigned regno, unsigned *red, unsigned *green,
                     unsigned *blue, unsigned *transp, struct fb_info *info);
    int (*setcolreg)(unsigned regno, unsigned red, unsigned green,
                     unsigned blue, unsigned transp, struct fb_info *info);
    int (*pan_display)(const struct fb_var_screeninfo *var,
                       struct fb_info_gen *info);
    int (*blank)(int blank_mode, struct fb_info_gen *info);
    void (*set_disp)(const void *par, struct display *disp,
                     struct fb_info_gen *info);
};
余下的uint parsize就我的理解的化我认为是fbgen_hwswitch 结构中函数
void (*get_par)(void *par, struct fb_info_gen *info);的par参数的大小,因为它定义的是空类型,给他一个parsize的化会方便后面的操作的。
回复

使用道具 举报

 楼主| 发表于 2005-11-14 10:34:17 | 显示全部楼层
该arm-linux是针对at91rm9200的移植。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-23 20:30 , Processed in 0.082002 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表