Linux中断延迟之tasklet(2)

可以看到,tasklet其实是软中断中两项,每一项对应的不是一个软中断函数,而是一个链表上的所有函数,在对应的软中断到来时,对应链表中的所有函数都将得到执行。而对于tasklet的唤醒其实就是设置pending位掩码的相应位,使软中断到来时会执行他。

tasklet的内核编程与应用

了解了tasklet的内核实现,对于他的应用就很简单了,首先,你应该分配一个新的tasklet_struct数据结构,并调用tasklet_init函数初始化它。

void tasklet_init(struct tasklet_struct *t,             void (*func)(unsigned long), unsigned long data)   {       t->next = NULL;       t->state = 0;       atomic_set(&t->count, 0);       t->func = func;       t->data = data;   }  

为了重新激活你的tasklet,调用tasklet_enable函数;

为了激活tasklet,根据自己tasklet需要的优先级,调用tasklet_schedule函数或tasklet_hi_schedule函数。我们也只看一个

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/22951.html