linux内核函数
文章平均质量分 94
木木0o0欧尼
这个作者很懒,什么都没留下…
展开
-
kmalloc kfree学习笔记
slub中的kmalloc和kfree学习笔记 2.6.26中的内存管理大概分为3个层次 SLUB,伙伴系统和ZONE,其中SLUB在最高层,这里通过分析kmalloc和kfree来分析SLUB的模型,在内存管理中还有NUMA系统,但是NUMA不是必须得,所以以下笔记建立在无SMP和不使用NUMA的环境下,并且不运行DEBU转载 2010-04-13 17:24:00 · 19554 阅读 · 2 评论 -
DECLARE_WAITQUEUE
#define DECLARE_WAITQUEUE(name, tsk) / wait_queue_t name =__WAITQUEUE_INITIALIZER(name, tsk) #define __WAITQUEUE_INITIALIZER(name, tsk) { task: tsk, tas转载 2010-04-15 16:48:00 · 5413 阅读 · 1 评论 -
快速参考
#include 该文件包含驱动程序使用的大部分内核API的定义,包括睡眠函数以及各种变量的声明。struct task_struct *current;//当前进程current->pidcurent->comm//当前进程的进程id和命令名obj-m//有内核构造系统使用的makefile符号,用来确定在当前目录中应构造哪些模块。/sys/module/pr原创 2010-04-16 13:50:00 · 572 阅读 · 0 评论 -
获取主设备号的代码
if(scull_major){ dev=MKDEV(scull_major,scull_minor); result=register_chrdev_region(dev,scull_nr_devs,"scull");}else{ result=alloc_chrdev_region(&dev,scull_minor,scull_nr_devs,"s原创 2010-04-16 15:59:00 · 1677 阅读 · 0 评论 -
file_operatons 方法清单
struct module *owner 第一个file_operations字段并不是一个操作;相反,它是指向"拥有"该结构的模块的指针。内核使用这个字段以避免在模块的操作正在被使用时卸载该模块。几乎都会被初始化为THIS_MODULE,定义在的宏loff_t (*llseek)(struct file *,loff_t int); 方法llseek用来修原创 2010-04-16 16:24:00 · 556 阅读 · 0 评论 -
Linux内核中_IO,_IOR,_IOW,_IOWR宏的用法与解析
在驱动程序里, ioctl()函数上传送的变量 cmd是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域: bit31~bit30 2位为 “区别读写”区,作用是区分是读取命令还是写入命令。 bit29~bit15 14位为 "数据大小"区,表示 ioctl转载 2012-09-19 10:56:48 · 39182 阅读 · 4 评论 -
kmalloc内核函数
#include void *kmalloc(size_t size, int flags); 给 kmalloc 的第一个参数是要分配的块的大小. 第 2 个参数, 分配标志, 非常有趣, 因为它以几个方式控制 kmalloc 的行为. 最一般使用的标志, GFP_KERNEL, 意思是这个分配((内部最终通过调用 __get_free_pages 来进行, 它是 GFP_ 前缀的来源转载 2012-09-19 11:23:52 · 1169 阅读 · 0 评论