[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