[OSy] Ktore z funkcii/makier na zakazovanie/povolovanie preruseni maju byt rekurzivne?

Ondrej Mikle ondrej.mikle at gmail.com
Thu Oct 28 20:18:25 CEST 2004


Nejak sa neviem vymotat z tychto styroch funkcii:

save_and_disable_interrupts
restore_interrupts
enable_interrupts
disable_interrupts

Podla zadania by enable/disable_interrupts malo povolit/zakazat
prerusenia bez ohladu na vsetko. Podla toho, co je napisane v synch.h
by to malo byt rekurzivne (tj. viac volani na disable potrebuje aspon
tolko volani na enable aby sa naozaj povolili, pocet by sa mal pocitat
v nejakej premennej pre vlakno).

Potom co ma robit druhy par save_and_disable/restore_interrupts?
Ukladanie status registru rozhodne nie je reentrantne, pretoze ak
zavolame dvakrat po sebe save_and_disable_interrupts a potom dvakrat
restore_interrupts, tak ich budeme mat stale zakazane. Ako to ma teda
byt?



More information about the NSWI004 mailing list