摘要:
我的理解是这样的: 两个主要数据结构如下:struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); ssize_t (*write) (... 阅读全文
摘要:
copy_to_user,copy_from_user,get_user,put_user函数比较copy_to_user -- Copy a block of data into user space. copy_from_user -- Copy a block of data from user space.get_user -- Get a simple variable from use... 阅读全文
摘要:
在Linux平台下,每一个进程都有一个task_struct数据结构,用来存储该进程的相关信息。task_struct在内核的以下代码中定义(以2.6.36为例,其他类似):http://lxr.linux.no/linux+v2.6.27/include/linux/sched.h。 task_struct最简单的两个成员,其他的这里就不再介绍了:进程名称点击隐藏C CODE1153115411... 阅读全文
摘要:
尽管内核模块不象应用程序一样顺序执行, 内核做的大部分动作是代表一个特定进程的. 内核代码可以引用当前进程, 通过存取全局项 current, 它在 asm/current.h 中定义, 它产生一个指针指向结构 task_struct, 在 linux/sched.h 定义. current 指针指向当前在运行的进程. 在一个系统调用执行期间, 例如 open 或者 read, 当前进程是... 阅读全文
摘要:
http://blog168.chinaunix.net/space.php?uid=24219701&do=blog&cuid=2439407 硬件接法:L3MODE - GPB2 L3DATA-GPB3 L3CLOCK-GPB4 内核自带的声卡驱动,可以正常编译,也会打印出正确的配置信息,但是播放时没有声音,也不能进行录音。要替换掉内核自带的驱动(注意先备份[sound/soc/s3c... 阅读全文
摘要:
http://blog.csdn.net/lemon_fantasy/archive/2009/02/17/3901030.aspx Linux 将所有外部设备看成是一类特殊文件,称之为“设备文件”,如果说系统调用是Linux内核和应用程序之间的接口,那么设备驱动程序则可以看成是Linux 内核与外部设备之间的接口。设备驱动程序向应用程序屏蔽了硬件在实现上的细节,使得应用程序可以像操作普通文件一样... 阅读全文
摘要:
发布日期: 2004 年 8 月 01 日 杨沙洲 (pubb@163.net)国防科技大学计算机学院 简介: 本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。 原文地址:http://www.ibm.com/developerworks/cn/linux/kernel/l-chain/index.html 一、 链表数据结构简介 链表是一种常... 阅读全文