
内核
文章平均质量分 70
程序员QC
To be a better man.
展开
-
linux内核中的一些关于中断的宏定义
中断的触发方式设置:#define IRQF_TRIGGER_NONE 0x00000000/*无触发中断(采用默认的或之前设置的触发方式)*/#define IRQF_TRIGGER_RISING 0x00000001/*指定中断触发类型:上升沿有效*/#define IRQF_TRIGGER_FALLING 0x00000002/*中断触发类型:下降沿有效*原创 2013-08-23 12:50:25 · 6729 阅读 · 0 评论 -
linux内核中3个定义错误号的头文件
查看错误号(errno,一个整数值)是调试程序的一个重要方法。当linux内核中的函数发生异常时,一般会将errno的负值返回,通过查看该值就可找到出错的原因。1-34号在include/asm-generic/errno-base.h中定义,35-132号在include/asm-generic/errno.h中定义,512-516、521-530号在include/linu原创 2013-08-23 13:52:26 · 3626 阅读 · 1 评论 -
内核初始化优化宏(__init, __devinit)
本文转自:内核初始化优化宏(__init, __devinit) 在内核里经常可以看到__init, __devinit这样的语句,这都是在init.h中定义的宏,gcc在编译时会将被修饰的内容放到这些宏所代表的section。其典型的定义如下:#define __init __section(.init.text) __cold notrace#define转载 2013-08-26 08:58:02 · 967 阅读 · 0 评论 -
destroy_workqueue与flush_workqueue
void flush_workqueue(struct workqueue_struct *wq)//清理指定工作队列中的所有任务{ const struct cpumask *cpu_map = wq_cpu_map(wq); int cpu; might_sleep(); lock_map_acquire(&wq->lockdep_map); lock_map_release(原创 2013-08-23 09:09:44 · 6807 阅读 · 0 评论 -
request_mem_region和ioremap
本文转自:内核request_mem_region 和 ioremap的理解几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I转载 2013-10-19 16:35:11 · 951 阅读 · 0 评论 -
磁盘缓冲区和页高速缓存的区别
本文转自:linux:磁盘缓冲区和页高速缓存的联系与区别转载 2014-05-03 11:35:11 · 4341 阅读 · 2 评论 -
Linux的分页管理机制
本文转自: Linux分页管理机制转载 2014-06-27 00:02:37 · 756 阅读 · 0 评论 -
内存管理中的三种地址
一、逻辑地址(有时也称虚拟地址) 逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如在C语言指针编程中,可以读取指针变量本身值(&操作)实际上这个值就是逻辑地址,它是相对于当前进程数据段的地址和绝对物理地址无关。 只有在Intel处理器的实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,CPU不进行自动地址转换)。逻辑地址也就是在Intel原创 2014-06-17 23:01:00 · 2439 阅读 · 0 评论 -
Linux的RCU锁机制
本文转自:Linux的RCU锁机制转载 2014-08-31 14:20:15 · 1192 阅读 · 0 评论