2011-09-13 34 views
5

¿Es posible crear datos locales de subprocesos en un módulo de kernel de Linux?Enhebrar datos locales en el módulo de núcleo de Linux

Necesito almacenar algunos datos para cada proceso/hilo llamando a mi módulo. ¿Hay alguna manera fácil de usar datos locales de subprocesos, o tengo que recurrir a escribiendo un hash map que usa el pid del proceso actual como clave?

+0

Estoy bastante seguro de que se supone que debes vincular eso con la estructura de tareas de alguna manera ... –

Respuesta

4

Suponiendo que la interfaz de su módulo kernel es un controlador de dispositivo de caracteres, entonces tiene un campo private_data en la estructura de archivos (que es análogo al descriptor de archivo de espacio de usuario) exactamente para eso.

Simplemente asigne y asigne un puntero a su estructura de elección en la operación de abrir archivo a ella.

No es exactamente thread o process local, pero en la mayoría de los casos una asignación de un descriptor de archivo a su proceso es verdadera y podría ser suficiente para usted.

+0

Muchas gracias, suena exactamente como lo que estaba buscando – ar31

Cuestiones relacionadas