Schreiben aus dem Kernel-Modul nach eventfd

Ich habe mit eventfd () eine eventfd-Instanz in einem Userspace-Programm erstellt. Gibt es eine Möglichkeit, wie ich einen Verweis (einen Zeiger auf seine Struktur oder PID + FD-Paar) auf diese erstellte Instanz von EventFD an ein Kernel-Modul übergeben kann, damit es den Zählerwert aktualisieren kann?

Folgendes möchte ich tun: Ich entwickle ein Userspace-Programm, das Daten und Signale mit einem von mir geschriebenen Kernel-Space-Modul austauschen muss. Für die Datenübertragung verwende ich bereits ioctl. Ich möchte jedoch, dass das Kernel-Modul dem Userspace-Programm signalisiert, wann immer neue Daten für den Verbrauch über ioctl bereit sind.

Zu diesem Zweck erstellt mein Userspace-Programm einige eventfds in verschiedenen Threads. Diese Threads warten mit select () auf diese eventfds und wenn das Kernelmodul die Anzahl dieser eventfds aktualisiert, werden sie die Daten verbrauchen, indem sie sie über ioctl anfordern.

Das Problem ist, wie löse ich die "struct file *" Zeiger auf diese Eventfds aus dem Kernelspace? Welche Art von Informationen über die Eventfds kann ich an Kernelmodule senden, damit diese die Zeiger auf die Eventfds erhalten? Welche Funktionen würde ich im Kernel-Modul verwenden, um diese Zeiger zu erhalten?

Gibt es eine bessere Möglichkeit, Ereignisse vom Kernelspace an den Benutzerraum zu signalisieren? Ich kann select () nicht loslassen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage