TUOX OPERATING SYSTEM
FLOPPY DRIVER
 
zdrojové kódy stránky roku 1996 hlavní stránka TUOX kontakt


Popis:

Floppy task je blokove zarizeni, ktere je schopne nacist (zapsat) 1 blok z bufferu na disketu nebo zjistit kapacitu (pocet bloku) mechaniky, nebo zjistit pocet mechanik ktere je tento ovladac schopen ridit. V implementaci se pocita i s praci vice po sobe jdoucich bloku az do velikosti DMA.
Po prichodu pozadavku na cteni(zapis) se zformuluje pozadavek na DMA (prepocet cisla bloku na fyz. cislo sektoru (cislo hlavy, sectoru a stopy), pricemz se budou cist dva sektory jdouci po sobe = 1024 byte). Pocka se, dokud nebude radic pripraven. Po spusteni pozadavku se inicializuje clock task, ktery po vyprseni 3 sekundoveho timeoutu spusti funkci do_timeout(void), ktera posle zpravu pro floppy task s argumentem timeout. Jestlize cteni bylo rychlejsi, kernel prijme preruseni od radice a posle zpravu a arg. DISKINT. Pote se vynuluje alarm u clock tasku a zacne se zkoumat stav radice. Podle jeho stavu se pozna uspesnost. Posle se zprava processu prislusnemu procesu o ukonceni IO.
Po prichodu pozadavku na IOCTL se z pole na strukturu FDD urci kapacita prislusne mechaniky, nebo se z konstanty NR_DRIVES urci maximalni pocet mechanik, ktere ovladac umi oslovovat.

Task floppy disk reaguje na tyto zprávy (zprávy jsou typu mess_devio):

Popis zpráv:
 
DEV_READ - čtení bloku
DEV_WRITE - zápis bloku
DEV_IOCTL - čtení stavu mechanik
Popis navratovych hodnot:
Poznamky: Odkazy:

 
kontakt:
Libor Čudek Jaroslav Skybík oběma