![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux kernel
文章平均质量分 65
cat_lover
这个作者很懒,什么都没留下…
展开
-
内核中的 likely() 与 unlikely()
from: http://blog.csdn.net/rstevens/article/details/1798561 在 2.6 内核中,随处可以见到 likely() 和 unlikely() 的身影,那么为什么要用它们?它们之间有什么区别? 首先要明确:转载 2011-07-04 14:06:10 · 515 阅读 · 0 评论 -
Linux驱动学习--时间、延迟及延缓操作2
Linux驱动学习--时间、延迟及延缓操作22008-05-24 17:55延迟执行设备驱动常常需要延后一段时间执行一个特定片段的代码, 常常允许硬件完成某个任务.长延迟有时,驱动需要延后执行相对长时间,长于一个时钟嘀哒。忙等待(尽量别用)若想延迟执行若干个时钟嘀哒,精度要求不高。最容易的( 尽管不推荐 ) 实现是一个监视 jiffy 计数器的循环。转载 2011-11-14 18:03:29 · 688 阅读 · 0 评论 -
asmlinkage
说明这是系统调用它是GCC对C程序的一种扩展, #define asmlinkage __attribute__((regparm(0)))表示用0个寄存器传递函数参数,这样,所有的函数参数强迫从栈中提取。这个asmlinkage大都用在系统调用中,系统调用需要在entry.s文件中用汇编语言调用,所以必须要保证它符合C语言的参数传递规则,才能用汇编语言正确调用它。这也是为何使用a转载 2011-11-17 14:17:33 · 792 阅读 · 0 评论 -
rmmod 时出现device or resource busy
(解决办法:1, 重启机器2, 强行卸载模块rmmod –f module需要进行内核配置:make menuconfig可加载模块3, Loadable module support --->4, [*] Enable loadable module support5, [*] Module unloading6, [ ]转载 2011-11-16 10:57:45 · 10168 阅读 · 2 评论 -
mb, smb_mb() barrier()
mb,,smp_mb() barrier()2010-09-01 15:39讨论一下,为什么他的那个例子: + (2) Multiprocessor interaction + + When there's a system with转载 2011-08-22 17:48:53 · 1384 阅读 · 0 评论 -
memcpy() memmove() memccpy()
相关函数: bcopy(), memccpy(), memcpy(), strcpy(), strncpy()表头文件: #include 定义函数: void *memmove(void *dest, const void *src, size_t n);函转载 2011-08-19 17:48:43 · 449 阅读 · 0 评论 -
__ieee80211_data_to_8023
今天看代码,发现这个函数命名很奇怪,然后就深究了下。确切的说,802.3是一种IEEE规定的一种规范的名称。而以太网是指使用这种规范的网络,不过现在这二者可以作为同义词使用了。所以说这个就是将802.11格式的数据转化为802.3格式的数据。挺有意思的命名。原创 2011-08-19 17:59:19 · 1148 阅读 · 0 评论 -
配置命令如何从用户空间传递到driver
配置命令如何从用户空间传递到driver关于配置命令如何从用户空间传递到driver中,最常用的是使用ioctl.1. ioctl + socket2. Ioctl + 文件在此处以ifconfig wlan0 up为例,来概括下,有些没有理解的东西后续继续补原创 2011-09-02 14:39:06 · 920 阅读 · 0 评论 -
ioctl 以及socket
我这里说的ioctl函数是在驱动程序里的,因为我不知道还有没有别的场合用到了ioctl, 所以就规定了我们讨论的范围。为什么要写篇文章呢,是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioctl。ioctl是设备驱动程序中对设转载 2011-09-02 13:18:15 · 4416 阅读 · 0 评论 -
分析linux/list.h中的list_head结构
from: http://blog.tianya.cn/blogger/post_show.asp?BlogID=504179&PostID=5623610 可以定义一套类似的对链表操作的宏,对任何链表的操作都可以用这套宏来替代,这是一个很有创意的想法,据转载 2011-07-05 10:48:32 · 621 阅读 · 0 评论 -
linux内核代码风格
这是Documentation/CodingStyle 的中文版,似乎没有LKD里面讲的幽默。再次fuck匈牙利命名法。“在函数名中包含函数类型(所谓的匈牙利命名法)是脑子出了问题——编译器知道那些类型而且能够检查那些类型,这样做只能把程序员弄糊涂了。难怪微软转载 2011-07-04 17:11:37 · 715 阅读 · 1 评论 -
Makefile的编写
工程中的代码分别存放在add/add_int.c、add/add_float.c、add/add.h、sub/sub_int.c、sub/sub_float.c、sub/sub.h、main.c中。 文件main.c#include #include "add.h" #include "sub.h"intmain(void){ i转载 2016-04-01 14:01:01 · 762 阅读 · 0 评论