sunwuben 发表于 2005-11-3 12:55:54

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

不是有fb_info结构体就行了吗?
请哪位解说一下这个结构体阿,多谢

limingth 发表于 2005-11-11 23:43:25

这个文件在哪儿啊?我怎么不知道   :(

limingth 发表于 2005-11-11 23:45:40

这个文件在哪儿啊?我怎么不知道   :(

sunwuben 发表于 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的化会方便后面的操作的。

sunwuben 发表于 2005-11-14 10:34:17

该arm-linux是针对at91rm9200的移植。
页: [1]
查看完整版本: 请问/fb.h中结构体fb_info_gen是作什么用的?