相关疑难解决方法(0)

如何使用Linux Work Queue

Linux工作队列是具有进程上下文的内核级线程.我试图用它作为kthread的替代品,它没有特定的进程上下文.但是如何将数据传递到工作队列?work_struct有一个数据字段,类型为atomic_long_t.我无法将指针传递给此字段.我该怎么做?

另外,我找不到工作队列的单个具体示例.你能建议吗?

kernel linux-kernel

13
推荐指数
1
解决办法
3万
查看次数

DECLARE_WORK 中函数的 Linux 传输参数

我尝试编写一个事件工作队列,但我遇到了一些问题。

我使用的是 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 做到这一点?

谢谢您的帮助

彼得

linux linux-device-driver linux-kernel embedded-linux

3
推荐指数
1
解决办法
5448
查看次数