在linux内核模块中线程化本地数据

时间:2011-09-13 13:03:48

标签: c module linux-kernel thread-local

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

我需要为调用我的模块的每个进程/线程存储一些数据。 有没有一种简单的方法来使用线程本地数据,或者我必须求助于 编写一个使用当前进程的pid作为密钥的哈希映射?

1 个答案:

答案 0 :(得分:4)

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

在打开文件操作时,只需分配并指定一个指向所选结构的指针。

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