分类: LINUX
2013-04-25 14:29:16
原文地址:linux内核API每天来一发(1) 作者:fuchao2012
名称 | 模块初始化入口函数 |
用例 | module_init(x) |
参数 | 运行于系统启动或者模块加载时的函数 |
简介 |
打开加载模块的编译选项MODULE以后,本函数将参数中的模块加载到 __initcall.int代码段 或者将目标模块绑定到init_module,使用insmod和modprobe指令可以将本模块加载到驱动模块 |
名称 | 模块退出出口函数 |
用例 | module_exit(x) |
参数 | 用于卸载模块 |
简介 |
本函数将目标模块绑定到cleanup_module代码段,使用rmmod指令卸载相应模块 当驱动模块静态编译到内核以后,本函数就没有效果了,不能卸载随系统启动的模块 |
名称 | 读取原子变量 |
用例 | atomic_read(v) |
参数 | 指向atomic_t类型的指针 |
简介 | 原子性的读取v的值,注意,本函数的有效应用范围只有24bit |
名称 | 设置原子变量的值 |
用例 | atomic_set(v,i) |
参数 |
v---指向atomic_t类型的指针 i----给定值 |
简介 | 原子性的将v的值设置为i,注意,本函数的有效应用范围只有24bit |
名称 | 向一个原子变量增加一个整数值 |
用例 | atomic_add(i, v) |
参数 |
v---指向atomic_t类型的指针 i----给定要增加的整数 |
简介 | 原子性的将v的值增加i,注意,本函数的有效应用范围只有24bit |
名称 | 从一个原子变量减去一个整数值 |
用例 | atomic_sub(i, v) |
参数 |
v---指向atomic_t类型的指针 i----给定要减少的整数 |
简介 | 原子性的将v的值减少i,注意,本函数的有效应用范围只有24bit |
名称 | 从一个原子变量减去一个整数值并测试结果 |
用例 | atomic_sbu(i, v) |
参数 |
v---指向atomic_t类型的指针 i----给定要减少的整数 |
简介 | 原子性的将v的值减少i,同时测试结果,如果为0则返回真,注意,本函数的有效应用范围只有24bit |
名称 | 设置原子变量自动加 1 |
用例 | atomic_inc(v) |
参数 |
v---指向atomic_t类型的指针 |
简介 | 自动将原子性的v值增加 1,注意,本函数的有效应用范围只有24bit |
名称 | 设置原子变量自动减 1 |
用例 | atomic_dec(v) |
参数 |
v---指向atomic_t类型的指针 |
简介 | 自动将原子性的v值减少 1,注意,本函数的有效应用范围只有24bit |
名称 | 设置原子变量自动减 1并测试结果 |
用例 | atomic_dec_and_test(v) |
参数 |
v---指向atomic_t类型的指针 |
简介 | 自动将原子性的v值减少 1,同时测试结果,如果为0则返回真,注意,本函数的有效应用范围只有24bit |
名称 | 设置原子变量自动减 1并测试结果是否为负值 |
用例 | atomic_add_negative(i, v) |
参数 |
i----给定要增加的整数 v---指向atomic_t类型的指针 |
简介 | 自动将原子性的v值增加 1,同时测试结果,如果为负值则返回真,注意,本函数的有效应用范围只有24bit |
名称 | 获取非对齐位置对象的值 |
用例 | get_unaligned(ptr) |
参数 | ptr----指向对象值的指针 |
简介 | 本宏可以用于获取非对称性结构中的非对称值,一般是大于1字节的。注意,非对称性数据设计是糟糕的设计方案 |
名称 | 设置非对齐位置对象的值 |
用例 | set_unaligned(val, ptr) |
参数 |
val----需要设置的值 ptr----指向对象值的指针 |
简介 | 本宏可以用于设置非对称性结构中的非对称对象,一般是大于1字节的。注意,非对称性数据设计是糟糕的设计方案 |
名称 | 使调用对象一直睡眠到超时 |
用例 | schedule_timeout(timeout) |
参数 | timeout----以jiffies为单位的时间量 |
简介 |
睡眠当前任务至超时,除非特意更改任务的状态。具体任务状态为: TASK_UNINTERRUPTIBLE-----此状态下,只能等待系统超时,此时本函数正常结束,返回 0 TASK_INTERRUPTIBLE-----此状态下,如果任务接到特殊信号,本函数可以被打断,函数返回剩余的时间。 当函数返回后,当前任务状态改为TASK_RUNNING运行态 将timeout的值设置为MAX_SCHEDULE_TIMEOUT时,CPU执行任务不会超时,此时本函数返回值一直是 MAX_SCHEDULE_TIMEOUT。在所有的情况中,timeout的值都不会出现负数。 |