中断编程5

<异步信号通知应用程序编程>

笔记

欲速则不达,建议先完成 的任务!

继续学习

通关时间从学习第1个课程开始计时

15天内通关,可获得赏金100元

开始学习
该课程需要登录后才能观看
3400 位同学正在学习! 查看详情

福州a严彬a嵌入式

3

回答

关于fasync_helper的问题

福州a严彬a嵌入式回复:

fasync_helper -》 fasync_add_entry -》fasync_insert_entry 

struct fasync_struct *fasync_insert_entry(int fd, struct file *filp, struct fasync_struct **fapp, struct fasync_struct *new)

{

        struct fasync_struct *fa, **fp;


spin_lock(&filp->f_lock);

spin_lock(&fasync_lock);

        //如果fa->fa_file这个就会是空指针,如果不实例化就会报错

for (fp = fapp; (fa = *fp) != NULL; fp = &fa->fa_next) {

if (fa->fa_file != filp)

continue;


spin_lock_irq(&fa->fa_lock);

fa->fa_fd = fd;

spin_unlock_irq(&fa->fa_lock);

goto out;

}


spin_lock_init(&new->fa_lock);

new->magic = FASYNC_MAGIC;

new->fa_file = filp;

new->fa_fd = fd;

new->fa_next = *fapp;

rcu_assign_pointer(*fapp, new);

filp->f_flags |= FASYNC;


out:

spin_unlock(&fasync_lock);

spin_unlock(&filp->f_lock);

return fa;

}



王豫新

1

回答

workqueue下半部

韩hyr回复:

在模块卸载的时候,需要把自己申请的所有资源全部移除 


上次保存笔记

看见好看好看就很快很快就会看见

保存 修改