共 12 篇文章
显示摘要每页显示  条
Linux文件系统。文件系统似躲在文件背后一只无形的手,对文件进行种种的操作(打开,读,写等),从这个意义上说,文件系统是文件的管理者(这是一种笼统的说法)。文件系统通过目录来组织文件。三个不同进程打开同一个文件(用inode object表示),而每个打开的文件就是一个文件对象file object(体会文件和文件对象是截然不同的),其中两个...
Linux进程在内核中是由task_struct进程描述符实现的,task_struct的mm字段指向内存描述符mm_struct,他是进程的一个内存执行摘要。每个虚拟内存区域(VMA)是一个虚拟地址空间上连续的区域;虚拟内存没有存储任何东西,他只是简单的映射一个程序的地址空间到相关的物理内存,这一大块物理内存叫做物理地址空间。当找到一个VMA,内核必须查看PTE...
最近在内核频繁使用了自旋锁,自旋锁如果使用不当,极易引起死锁,在此总结一下。因此,如果我们有一个自旋锁,它可以被运行在(硬件或软件)中断上下文中的代码获得,则必须使用某个禁用中断的spin_lock形式的锁来禁用本地中断(注意,只是禁用本地CPU的中断,不能禁用别的处理器的中断),使用其他的锁定函数迟早会导致系统死锁(导致死锁的...
spinlock中不允许休眠调度 (转)spinlock只是一种选择, 并不是所有同步的地方都用spinlock. 通常它适用于对内核(包括模块)的一些全局数据结构的访问。内核抢占的情况由自旋锁代码自己处理. 内核代码持有一个自旋锁的任何时间, 抢占在相关处理器上被禁止. 即便单处理器系统必须以这种方式禁止抢占以避免竞争情况. 这就是为什么需要正确的加锁...
在此如果知道成员b的指针可用container_of函数来获取包含b的my结构体的指针。#define container_of(ptr, type, member) ({const typeof( ((type *)0)->member ) *__mptr = (ptr);#ifdef __compiler_offsetof#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)#else#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)...
同样,我们将上述的offsetof调用展开,即为: (struct demo_struct *)( (char *)__mptr - ((size_t) &((struct demo_struct *)0)->member3) );可见,offsetof的实现原理如上所述,就是取结构体中的域成员相对于地址0的偏移地址,也就是域成员变量相对于结构体变量首地址的偏移。因 此,offsetof(struct demo_struct, member3)调用返回的...
codec中几个关键结构体没有大的变化,如snd_soc_dai_ops、snd_soc_dai_driver(相当于2.6.32中的snd_soc_dai),倒是以前的snd_soc_codec_device重定义为snd_soc_codec_driver,这个算是最明显的。注册函数-snd_soc_register_codec.*/ int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec, int addr_bits, int d...
Request_irq参数dev_id的真正作用。int request_irq(unsigned int irq, irqreturn_t(*handler)(int, void *, struct pt_regs *), unsignedlong irqflags, const char*devname, void*dev_id);void free_irq(unsigned int irq, void *dev_id)if (irq>= NR_IRQS) return;desc =irq_desc +irq;#ifdef CONFIG_IRQ_RELEASE_METH...
设备有着自己特殊的按键键码,我需要将一些标准的按键,比如0-9,X-Z等模拟成标准按键,比如KEY_0,KEY-Z等,所以需要用到按键模拟,具体方法就是操作/dev/input/event1文件,向它写入个input_event结构体就可以模拟按键的输入了。
帮助 | 留言交流 | 联系我们 | 服务条款 | 下载网文摘手 | 下载手机客户端
北京六智信息技术股份有限公司 Copyright© 2005-2024 360doc.com , All Rights Reserved
京ICP证090625号 京ICP备05038915号 京网文[2016]6433-853号 京公网安备11010502030377号
返回
顶部