Zapis do eventfd z modułu jądra
Stworzyłem instancję eventfd w programie przestrzeni użytkownika za pomocą eventfd (). Czy istnieje sposób, w jaki mogę przekazać jakieś odwołanie (wskaźnik do jego struktury lub pary pid + fd) do tej utworzonej instancji eventfd do modułu jądra, aby mógł zaktualizować wartość licznika?
Oto, co chcę zrobić: Opracowuję program przestrzeni użytkownika, który musi wymieniać dane i sygnały z modułem przestrzeni jądra, który napisałem. Do przesyłania danych używam już ioctl. Ale chcę, aby moduł jądra był w stanie zasygnalizować programowi przestrzeni użytkownika, gdy nowe dane są gotowe do wykorzystania przez ioctl.
Aby to zrobić, mój program użytkownika stworzy kilka zdarzeń w różnych wątkach. Wątki te będą czekać na te zdarzenia zdarzeń przy użyciu select () i za każdym razem, gdy moduł jądra aktualizuje liczniki na tych zdarzeniach zdarzeń, będą one kontynuować pobieranie danych, żądając ich przez ioctl.
Problem polega na tym, jak rozwiązać wskaźniki „pliku struktury *” do tych zdarzeń z kernelspace? Jakiego rodzaju informacje o wydarzeniach można wysłać do modułów jądra, aby mógł uzyskać wskaźniki do zdarzeń? jakich funkcji użyłbym w module jądra, aby uzyskać te wskaźniki?
Czy jest lepszy sposób sygnalizowania zdarzeń do przestrzeni użytkownika z kernelspace? Nie mogę odpuścić używania select ().