fbsysfs.c

来自「Linux Kernel 2.6.9 for OMAP1710」· C语言 代码 · 共 75 行

C
75
字号
/* * fbsysfs.c - framebuffer device class and attributes * * Copyright (c) 2004 James Simmons <jsimmons@infradead.org> *  *	This program is free software you can redistribute it and/or *	modify it under the terms of the GNU General Public License *	as published by the Free Software Foundation; either version *	2 of the License, or (at your option) any later version. *//* * Note:  currently there's only stubs for framebuffer_alloc and * framebuffer_release here.  The reson for that is that until all drivers * are converted to use it a sysfsification will open OOPSable races. */#include <linux/kernel.h>#include <linux/fb.h>/** * framebuffer_alloc - creates a new frame buffer info structure * * @size: size of driver private data, can be zero * @dev: pointer to the device for this fb, this can be NULL * * Creates a new frame buffer info structure. Also reserves @size bytes * for driver private data (info->par). info->par (if any) will be * aligned to sizeof(long). * * Returns the new structure, or NULL if an error occured. * */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 = kmalloc(fb_info_size + size, GFP_KERNEL);	if (!p)		return NULL;	memset(p, 0, fb_info_size + size);	info = (struct fb_info *) p;	if (size)		info->par = p + fb_info_size;	return info;#undef PADDING#undef BYTES_PER_LONG}/** * framebuffer_release - marks the structure available for freeing * * @info: frame buffer info structure * * Drop the reference count of the class_device embedded in the * framebuffer info structure. * */void framebuffer_release(struct fb_info *info){	kfree(info);}EXPORT_SYMBOL(framebuffer_release);EXPORT_SYMBOL(framebuffer_alloc);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?