The-primary-character-driven
所属分类:Linux/Unix编程
开发工具:Unix_Linux
文件大小:3588KB
下载次数:3
上传日期:2013-12-13 19:48:42
上 传 者:
keanking
说明: Linux初级字符驱动学习资料,绝对值的收藏!
(The primary character driven)
文件列表:
初级驱动(5)\hello_drv.c (1870, 2013-10-28)
初级驱动(5)\linux内核模块设计.pdf (518572, 2013-10-25)
初级驱动(5)\linux字符设备驱动.pdf (115824, 2013-10-28)
初级驱动(5)\linux字符设备驱动(三).pdf (125765, 2013-10-30)
初级驱动(5)\linux字符设备驱动(二).pdf (146509, 2013-10-29)
初级驱动(5)\mini_rootfs.tar.bz2 (2568093, 2013-10-29)
初级驱动(5)\实验\06_poll\.monitor.c.swp (12288, 2013-10-30)
初级驱动(5)\实验\06_poll\.read_app.c.swp (12288, 2013-10-30)
初级驱动(5)\实验\06_poll\hello_drv.c (2866, 2013-10-30)
初级驱动(5)\实验\06_poll\Makefile (541, 2013-10-30)
初级驱动(5)\实验\06_poll\monitor (6692, 2013-10-30)
初级驱动(5)\实验\06_poll\monitor.c (637, 2013-10-30)
初级驱动(5)\实验\06_poll\read_app (6128, 2013-10-30)
初级驱动(5)\实验\06_poll\read_app.c (297, 2013-10-30)
初级驱动(5)\实验\06_poll\write_app (6012, 2013-10-30)
初级驱动(5)\实验\06_poll\write_app.c (254, 2013-10-30)
初级驱动(5)\实验\ioctl_test_01\app.c (194, 2013-10-29)
初级驱动(5)\实验\ioctl_test_01\hello.h (105, 2013-10-29)
初级驱动(5)\实验\ioctl_test_01\hello_drv.c (2550, 2013-10-29)
初级驱动(5)\实验\ioctl_test_02\app.c (183, 2013-10-29)
初级驱动(5)\实验\ioctl_test_02\hello.h (258, 2013-10-29)
初级驱动(5)\实验\ioctl_test_02\hello_drv.c (2736, 2013-10-29)
初级驱动(5)\实验\ioctl_test_03\app.c (283, 2013-10-29)
初级驱动(5)\实验\ioctl_test_03\hello.h (349, 2013-10-29)
初级驱动(5)\实验\ioctl_test_03\hello_drv.c (2938, 2013-10-29)
初级驱动(5)\实验\llseek_test\app.c (341, 2013-10-29)
初级驱动(5)\实验\llseek_test\hello_drv.c (3250, 2013-10-29)
初级驱动(5)\实验\sleep_test\hello_drv.c (2650, 2013-10-30)
初级驱动(5)\实验\sleep_test\read_app.c (223, 2013-10-30)
初级驱动(5)\实验\sleep_test\write_app.c (163, 2013-10-30)
初级驱动(5)\实验:字符初体验.txt (2348, 2013-10-28)
初级驱动(5)\密码:s5pv210或者S5PV210.txt (0, 2013-12-09)
初级驱动(5)\笔录\chardev.txt (2028, 2013-10-28)
初级驱动(5)\笔录\chardev.txt.bak (1888, 2013-10-28)
初级驱动(5)\笔录\char_02.bmp (7055894, 2013-10-28)
初级驱动(5)\笔录\ioctl.bmp (7055894, 2013-10-29)
初级驱动(5)\笔录\module.txt (2106, 2013-10-25)
初级驱动(5)\笔录\module.txt.bak (1657, 2013-10-25)
初级驱动(5)\笔录\poll.bmp (7055894, 2013-10-30)
... ...
user : select/poll
----------------------------
kernel: sys_poll
-> do_sys_poll
-> poll_initwait(&table);
-> init_poll_funcptr(&table->pt, __pollwait);
-> table->pt->qproc = __pollwait; //wait_queue_head_t -> poll_table
-> fdcount = do_poll(nfds, head, &table, end_time);
-> for (;;) {
...
for(walk = list; walk != NULL; walk = walk->next){
.....
if (do_pollfd(pfd, pt)) {
-> mask = file->f_op->poll(file, pwait);
--> mask = hello_poll();
-> poll_wait(filp,&rd_queue,wait);
-> if(flag > 0)
mask |= POLLIN|POLLRDNORM;
count++;
pt = NULL;
}
}
if (count || timed_out)
break;
if (!poll_schedule_timeout(wait, TASK_INTERRUPTIBLE, to, slack))
timed_out = 1;
}
-> poll_freewait(&table);
struct pollfd {
int fd;
short events;
short revents;
};
user: open
kernel:sys_open
-> do_sys_open
-->
-->
--> hello_open()
printk("open\n");
近期下载者:
相关文件:
收藏者: