framebuffer_alloc()

来源:互联网 发布:java手机游戏免费下载 编辑:程序博客网 时间:2024/05/16 11:17
 linux-2.6.22/includenux/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);        if (!p)                return NULL;        info = (struct fb_info *) p;        if (size)                info->par = p + fb_info_size;        info->device = dev;#ifdef CONFIG_FB_BACKLIGHT        mutex_init(&info->bl_curve_mutex);#endif        return info;#undef PADDING#undef BYTES_PER_LONG} 


0 0
原创粉丝点击