[OSy] [Osy] Fifth extended assignment - dotaz
Vojtech Horky
horky at d3s.mff.cuni.cz
Tue Jan 2 09:45:22 CET 2018
Dobrý den.
Dne 30.12.2017 v 18:10 Karel Maděra napsal(a):
> Dobrý den,
> mám problém v pátému úkolu.
>
> Jak po tom, co disku vyplním registry ( adresu bufferu, block, který má
> číst/psát, a read/write bit ), řeknu disku, že má ty hodnoty registrů
> vzít a začít číst ?
Operace se spustí zápisem do command registru. Btw, interní logika je
poměrně dobře vidět ve zdrojácích MSIMu (src/device/ddisk.c a callbacky
pro čtení/zápis).
> Já předpokládám, že DMA interrupt bit ve status/command registru nějak
> řeší tento problém, ale úplně přesně nechápu jeho význam.
Tenhle bit řeší jestli nějaká operace běží, resp. ho lze zápisem
vynulovat (typicky po přerušení).
> Také bych se chtěl zeptat, zda je možné, že čtení z registru disku
> selže, a jak to v tom případě poznám.
> JInak řečeno, může dojít k tomu, že z funkce disk_get_nblocks vrátím
> něco jiného než EOK ?
V MSIMu operace selže (a nastaví bit e ve status registru) pouze pokud
po disku chcete něco, co nejde/neumí (současné čtení a zápis apod.).
Čtení velikosti neselže nikdy (vizte funkci ddisk_read() v MSIMu).
- VH
More information about the NSWI004
mailing list