注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

时间记录器

记录我的Linux、Android学习之路

 
 
 

日志

 
 

framebuffer_alloc()  

2010-08-01 15:44:14|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
linux-2.6.22/include/linux/fb.h

    framebuffer_alloc()功能是向内核申请一段大小为sizeof(struct fb_info) + size的空间,其中size的大小代表设备的私有数据空间,并用fb_info的par域指向该私有空间。
 
struct fb_info *framebuffer_alloc(size_t size, struct device *dev)
{
#define BYTES_PER_LONG (BITS_PER_LONG/8)
#define PADDING (BYTES_PER_LONG - (sizeof(struct fb_info) % BYTES_PER_LONG))//需要填充的字节数
int fb_info_size = sizeof(struct fb_info);
struct fb_info *info;
char *p;

if (size)
fb_info_size += PADDING;

p = kzalloc(fb_info_size + size, GFP_KERNEL);//申请size + fb结构体填充后的大小

if (!p)
return NULL;

info = (struct fb_info *) p;

if (size)
info->par = p + fb_info_size;//这里 fb_info_size 为fb结构体填充后的大小
;//申请的内存缓冲区的开头一些留给邋fb_info
;//这里info->par指向实际buffer的首地址,不包含info部分

info->device = dev;

return info;
#undef PADDING
#undef BYTES_PER_LONG
}
  评论这张
 
阅读(1356)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017