Escribiendo en eventfd desde el módulo del kernel

He creado una instancia de eventfd en un programa de espacio de usuario usando eventfd (). ¿Hay alguna forma en que pueda pasar alguna referencia (un puntero a su estructura o un par pid + fd) a esta instancia creada de eventfd a un módulo del kernel para que pueda actualizar el valor del contador?

Esto es lo que quiero hacer: estoy desarrollando un programa de espacio de usuario que necesita intercambiar datos y señales con un módulo de espacio de kernel que he escrito. Para transferir datos, ya estoy usando ioctl. Pero quiero que el módulo del kernel pueda señalizar el programa de espacio de usuario siempre que haya nuevos datos listos para que los consuma sobre ioctl.

Para hacer esto, mi programa de espacio de usuario creará algunos eventos en varios hilos. Estos hilos esperarán en estos eventos usando select () y cada vez que el módulo del kernel actualice los conteos en estos eventos, consumirán los datos solicitándolos a través de ioctl.

El problema es, ¿cómo resuelvo los punteros del "archivo de estructura *" a estos eventos desde kernelspace? ¿Qué tipo de información sobre los eventfds puedo enviar a los módulos del kernel para que pueda obtener los punteros a los eventfds? ¿Qué funciones usaría en el módulo del kernel para obtener esos punteros?

¿Hay una mejor manera de señalar los eventos al espacio de usuario desde kernelspace? No puedo dejar de usar select ().

Respuestas a la pregunta(3)

Su respuesta a la pregunta