color map 剖析
在framebuffer驅動程式設計中,cmap這個東東太暈了。現在我要把他赤裸裸的剖析給大家:)
1. struct fb_cmap
/*顏色對映表*/
struct fb_cmap ;
該結構在fb.**件中定義,在struct fb_ops結構中有兩個成員函式與其相關:
/*獲取顏色表*/
int (*fb_get_cmap)(struct fb_cmap *cmap, int kspc, int con, struct fb_info *info);
/*設定顏色表*/
int (*fb_set_cmap)(struct fb_cmap *cmap, int kspc, int con, struct fb_info *info);
在struct fb_info結構中有變數:
struct fb_cmap cmap; /* current cmap */
在fpgen基礎操作下提供:
extern int fbgen_get_cmap(struct fb_cmap *cmap, int kspc, int con, struct fb_info *info);
extern int fbgen_set_cmap(struct fb_cmap *cmap, int kspc, int con, struct fb_info *info);
在檔案/* drivers/video/fbcmap.c */中提供更多的cmap應用
extern int fb_alloc_cmap(struct fb_cmap *cmap, int len, int transp);
extern void fb_copy_cmap(struct fb_cmap *from, struct fb_cmap *to, int fsfromto);
extern int fb_get_cmap(struct fb_cmap *cmap, int kspc,
int (*getcolreg)(u_int, u_int *, u_int *, u_int *,u_int *, struct fb_info *),
struct fb_info *fb_info);
extern int fb_set_cmap(struct fb_cmap *cmap, int kspc,
int (*setcolreg)(u_int, u_int, u_int, u_int, u_int,struct fb_info *),
struct fb_info *fb_info);
extern struct fb_cmap *fb_default_cmap(int len);
extern void fb_invert_cmaps(void);
2. 通過檔案解析
在anakinfb.c檔案中,cmap如圖
在stifb.c
Linux下Framebuffer驅動簡介
version v0.1 time 09 06 2008 author green waste 163.com 最近接觸了一些關於linux下framebuffer方面的東西和lcd的framebuffer驅動,所以去了解了一些相關基礎知識。為了避免其他人走我走過的彎路,所以就把我的一些很少的心得,...
Linux中Framebuffer驅動詳解1
之前看過很多書籍和網上資料,了解了linux中framebuffer的框架和一些結構體以及必備的硬體知識。但令本人深感 痛恨 的是,這些資料無不是點到為止 有些深入一些有些只介紹大概 貼 的時候總是省略了很多內容,難道就不能有一本書或一篇文章將整個framebuffer 全部講完嗎?在這裡我想 挑戰...
framebuffer驅動相關結構詳解2010
framebuffer對應的原始檔在linux drivers video 目錄下,總的抽象裝置檔案為fbcon.c,在這個目錄下還有其他各種顯示卡驅動相關的原始檔。framebuffer裝置驅動主要基於如下兩個檔案 1 linux include linux fb.h 2 linux driver...