• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • FrameBuffer的重要數據結構

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    include/ linux /fb.h中的一些重要的數據結構 struct fb_fix_screeninfo { char id[16]; /* identification string eg TT Builtin */ unsigned long smem_start; /* Start of frame buffer mem */ /* (physical address) */ __u32 smem_len; /* Length of fr
    include/linux/fb.h中的一些重要的數據結構

    struct fb_fix_screeninfo {

    char id[16]; /* identification string eg "TT Builtin" */

    unsigned long smem_start; /* Start of frame buffer mem */
    /* (physical address) */

    __u32 smem_len; /* Length of frame buffer mem */

    __u32 type; /* see FB_TYPE_* */

    __u32 type_aux; /* Interleave for interleaved Planes */

    __u32 visual; /* see FB_VISUAL_* */

    __u16 xpanstep; /* zero if no hardware panning */

    __u16 ypanstep; /* zero if no hardware panning */

    __u16 ywrapstep; /* zero if no hardware ywrap */

    __u32 line_length; /* length of a line in bytes */

    unsigned long mmio_start; /* Start of Memory Mapped I/O */
    /* (physical address) */

    __u32 mmio_len; /* Length of Memory Mapped I/O */

    __u32 aclearcase/" target="_blank" >ccel; /* Type of acceleration available */

    __u16 reserved[3]; /* Reserved for future compatibility */

    };


    struct fb_bitfield {

    __u32 offset; /* beginning of bitfield */

    __u32 length; /* length of bitfield */

    __u32 msb_right; /* != 0 : Most significant bit is */
    /* right */

    };


    struct fb_info {

    char modename[40]; /* default video mode */

    kdev_t node;

    int flags;
    int open; /* Has this been open already ? */

    #define FBINFO_FLAG_MODULE 1 /* Low-level driver is a module */

    struct fb_var_screeninfo var; /* Current var */

    struct fb_fix_screeninfo fix; /* Current fix */

    struct fb_monspecs monspecs; /* Current Monitor specs */

    struct fb_cmap cmap; /* Current cmap */

    struct fb_ops *fbops;

    char *screen_base; /* Virtual address */

    struct display *disp; /* initial display variable */

    struct vc_data *display_fg; /* Console visible on this display */

    char fontname[40]; /* default font name */

    devfs_handle_t devfs_handle; /* Devfs handle for new name */

    devfs_handle_t devfs_lhandle; /* Devfs handle for compat. symlink */

    int (*changevar)(int); /* tell console var has changed */

    int (*switch_con)(int, struct fb_info*);

    /* tell fb to switch consoles */

    int (*updatevar)(int, struct fb_info*);
    /* tell fb to update the vars */

    void (*blank)(int, struct fb_info*); /* tell fb to (un)blank the screen */
    /* arg = 0: unblank */
    /* arg > 0: VESA level (arg-1) */

    void *pseudo_palette; /* Fake palette of 16 colors and
    the cursor's color for non
    palette mode */
    /* From here on everything is device dependent */

    void *par;

    };


    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);

    };


    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 */

    };

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>