Linux工作队列是具有进程上下文的内核级线程.我试图用它作为kthread的替代品,它没有特定的进程上下文.但是如何将数据传递到工作队列?work_struct有一个数据字段,类型为atomic_long_t.我无法将指针传递给此字段.我该怎么做?
另外,我找不到工作队列的单个具体示例.你能建议吗?
我尝试编写一个事件工作队列,但我遇到了一些问题。
我使用的是 Linux 2.6.36 内核。并且 DECLARE_WORK 函数从 3 个参数更改为 2 个。
问题是,旧的声明是
DECLARE_WORK (struct work_struct name, void (*func)(void *), void *data);
Run Code Online (Sandbox Code Playgroud)
而新的是
DECLARE_WORK (struct work_struct name, void (*func)(void *));
Run Code Online (Sandbox Code Playgroud)
我认为 void *data 指针是给 func 参数。那正确吗?我如何使用新版本的 DECLARE_WORK 做到这一点?
谢谢您的帮助
彼得