- 博客(6)
- 资源 (3)
- 收藏
- 关注
原创 LDD3源码学习日记<八>
一、用户空间的poll和select测试函数在使用者两个函数之前,需要先安装scullpipe设备,下面是他们的测试代码和注释:#include #include #include #include #include #include #include #include #include int main(int argc,
2013-10-27 11:29:33 609
原创 LDD3源码学习日记<七>
这篇是学习关于阻塞IO的源码内容,源代码在examples/scull/pipe.c examples/scull/main.c中,下面开始分析源代码:一、代码分析scullpipe使用一个进程来产生数据并唤醒读取进程,类似的,利用读取进程来唤醒等待缓冲区可用的写入进程,scullpipe的主体实现在examples/scull/pipe.c中,但是也利用了examples/scull/
2013-10-27 09:49:10 1211
原创 LDD3源码学习日记<六>
简单休眠实验(sleepy.c)#include #include #include /* current and everything */#include /* printk() */#include /* everything... */#include /* size_t */#include MODULE_LICENSE("GPL");s
2013-10-26 19:56:53 834
原创 LDD3源码学习日记<五>
这篇是关于ioctl的,全篇就这一个知识点。首先看函数原型:int (*ioctl)(struct inode *inode, struct file *filp,unsigned int cmd, unsigned long arg);其中,cmd是预先定义好的一些命令编号,对应要求ioctl执行的命令。arg是与cmd配合使用的参数。ioctl的实现一般是通过一个大的switch语句,
2013-10-26 17:29:06 717
原创 LDD3源码学习日记<四>
日记三不小心被删了。。。哎,只能在回收站里面自己看了。这博客80%的功能还是写给自己看的,其他部分的功能应该是用来练习写作能力的,留下这一路走来的证据,两年后回过头来看看自己当初是怎么犯低级错误的。哈哈。。第五章是并发与竞态,书上的内容讲的主要是信号量和自旋锁机制,还有completion,不过书上介绍这部分的内容不多,只用了短短的一页纸。信号量可以导致休眠,所以一般的可以用于临界保护区比较大
2013-10-26 15:06:16 656
原创 LDD3源码学习日记<二>
分析完了最基本的hello.c程序,开始学习下面的scull.c。第三章的内容里并没有涉及到scull中所有要用到的知识,主要介绍了设备驱动的框架,scull的使用,及fileoperation里面的open、read、write的实现。下面开始分析代码。最先看的应该是init函数和exit函数,找到他们int scull_init_module(void){ int resu
2013-10-25 19:26:15 822 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人