Kernel: file_operations->fasync

Jaroslav Snajdr jarda na tinysoftware.com
Pátek Duben 14 17:04:11 CEST 2000


> a) kde se da najit vysvetleni (ci presnejsi popis) datovych struktur v
> jadernem prostoru. Narazil jsem na file_operations a nevim, co doplnit
> do polozky fasync.

Napriklad v knize A. Rubini: Linux Device Drivers.

> b) k cemu to je dobre?

Aby mohl driver posilat procesum asynchronni zpravy o tom, ze na vstupu
jsou
nova data. Pomoci fcntl(fd, F_SETFL, FASYNC) si nastavite, ze to od
nejakeho
file deskriptoru chcete a on vam bude posilat signal SIGIO, pokazde kdyz
je
neco noveho ke cteni. Funkce file_operations->fasync se vola pri onom
fcntl,
ktere nastavuje FASYNC flag. Vice se dozvite ve vyse jmenovane knize.

Pokud vas driver nehodla tento zazrak podporovat, nastavte fasync =
NULL.

> Hledal jsem to v KernelHackersGuide, ale ta uz je postarsi a
> v soucasne dobe se nevyviji. z lsd.linux.cz (mimochodem docela sikovna
> vec) jsem nasel pouze, kde se to vola, ale presnejsi info v jadre jsem
> take nenasel.  Existuje neco podobneho jako byla sveho casu KHG?

Existuje The Linux Kernel z projektu LDP, vysla i cesky, odtud lze
ziskat
vseobecny prehled o tom, jak jadro funguje, ale zadne podrobnosti se zde
nedozvite, je spise teoreticka.

Rubiniho kniha je orientovana na psani driveru, najdete tady spoustu
praktickych
informaci.

Nejlepsi je ale hledat inspiraci ve zdrojacich, at si vymyslite co
chcete, urcite
uz neco aspon trochu podobneho napsal nekdo jiny :-)

-jns


Další informace o konferenci Linux