编写基于Linux的lcd驱动(4)

struct fb_info {       int node;       int flags;       struct mutex lock;      /* Lock for open/release/ioctl funcs */       struct mutex mm_lock;       /* Lock for fb_mmap and smem_* fields */       struct fb_var_screeninfo var;   /* Current var */       struct fb_fix_screeninfo fix;   /* Current fix */       struct fb_monspecs monspecs;    /* Current Monitor specs */       struct work_struct queue;   /* Framebuffer event queue */       struct fb_pixmap pixmap;    /* Image hardware mapper */       struct fb_pixmap sprite;    /* Cursor hardware mapper */       struct fb_cmap cmap;        /* Current cmap */       struct list_head modelist;      /* mode list */       struct fb_videomode *mode;  /* current mode */      #ifdef CONFIG_FB_BACKLIGHT        /* assigned backlight device */       /* set before framebuffer registration,          remove after unregister */       struct backlight_device *bl_dev;          /* Backlight level curve */       struct mutex bl_curve_mutex;           u8 bl_curve[FB_BACKLIGHT_LEVELS];   #endif    #ifdef CONFIG_FB_DEFERRED_IO        struct delayed_work deferred_work;       struct fb_deferred_io *fbdefio;   #endif           struct fb_ops *fbops;       struct device *device;      /* This is the parent */       struct device *dev;     /* This is this fb device */       int class_flag;                    /* private sysfs flags */   #ifdef CONFIG_FB_TILEBLITTING        struct fb_tile_ops *tileops;    /* Tile Blitting */   #endif        char __iomem *screen_base;  /* Virtual address */       unsigned long screen_size;  /* Amount of ioremapped VRAM or 0 */        void *pseudo_palette;       /* Fake palette of 16 colors */    #define FBINFO_STATE_RUNNING    0    #define FBINFO_STATE_SUSPENDED  1        u32 state;          /* Hardware state i.e suspend */       void *fbcon_par;                /* fbcon use-only private area */       /* From here on everything is device dependent */       void *par;       /* we need the PCI or similiar aperture base/size not         smem_start/size as smem_start may just be an object         allocated inside the aperture so may not actually overlap */       resource_size_t aperture_base;       resource_size_t aperture_size;   };  

5) struct fb_ops
应用程序可以通过ioctl()系统调用来操作LCD硬件,这些操作需要fb_ops中的函数的支持。 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwzjfs.html