new linux device driver - tasklet
收錄在 Ameba 的 100篇
續之前所寫的 Linux device driver - tasklet
github tasklet
1. DECLARE_TASKLET
定義在 linux/interrupt.h
#define DECLARE_TASKLET(name, func, data) \
struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(0), func, data }
因為 tasklet_init() 也是在設定 tasklet_struct 的內容值,
所以有了 DECLARE_TASKLET 就不用再做 tasklet_init
2. tasklet_schedule
調度 tasklet 執行:
一般 schedule 用 softirq 30, 如果需要較高的 priority,
可以用 tasklet_hi_schedule(), 會使用 softirq 0
3. tasklet_kill
確保 tasklet 不會再次被調度. 如果 tasklet 正在執行, 會等他執行完畢
續之前所寫的 Linux device driver - tasklet
github tasklet
1. DECLARE_TASKLET
定義在 linux/interrupt.h
#define DECLARE_TASKLET(name, func, data) \
struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(0), func, data }
因為 tasklet_init() 也是在設定 tasklet_struct 的內容值,
所以有了 DECLARE_TASKLET 就不用再做 tasklet_init
2. tasklet_schedule
調度 tasklet 執行:
一般 schedule 用 softirq 30, 如果需要較高的 priority,
可以用 tasklet_hi_schedule(), 會使用 softirq 0
3. tasklet_kill
確保 tasklet 不會再次被調度. 如果 tasklet 正在執行, 會等他執行完畢
留言
張貼留言