2011-09-13 26 views
5

是否可以在Linux内核模块中创建线程本地数据?在Linux内核模块中线程本地数据

我需要为调用我的模块的每个进程/线程存储一些数据。 有使用线程本地数据的简单方法,还是我不得不求助于 编写一个使用当前进程的PID作为密钥的哈希映射?

+0

我敢肯定,你应该以某种方式将它与任务结构链接起来...... –

回答

4

假设你的内核模块的接口是一个字符设备驱动程序,那么你在文件结构中有一个private_data字段(类似于用户空间文件描述符)。

只需在打开的文件操作中为它分配并指定一个指向您选择的结构的指针即可。

它不完全是线程或进程本地,但在大多数情况下,一个文件描述符到您的过程的映射是真实的,它可能对你来说已经足够好了。

+0

非常感谢,这听起来就像我一直在寻找 – ar31