[OSy] Vraceni vysledku ze syscallu
Martin Decky
decky at dsrg.mff.cuni.cz
Fri Jan 12 09:36:25 CET 2007
Hezky den,
> jak se da vratit vysledek syscallu do uzivatelske
> funkce?
Typicky se k tomu pouziva nejaky registr, vetsinou se voli v0, protoze
to odpovida zpusobu predavani navratove hodnoty z funkce ve standardni
ceckove volaci konvenci na MIPSu (takze s tim ma prekladac nejmene prace).
> V pocatku jsme navratovou hodnotu predavali
> pres registr V0 a fungovalo to do aplikovani vsech
> patchu k kernelu kohlto (sirius). Uz pul dne se na to
> nemuzeme prijit. Vyzkousel jsem i registr S0, ale
> nefunguje to taky.
Opravdu nechci byt skaredy, ale bohuzel musim rici, ze jste si asi stale
jeste neosvojili tu spravnou "metodu" na reseni programatorskych problemu.
Pokud Vam to fungovalo pred aplikovanim tech patchu, tak ty patche
pravdepodobne neco zmenily ve spojitosti s Vasim kodem. K zjisteni, co
zmenily, Vam ovsem nepomuze kristalova koule ani tato konference, ale
jedine to, ze zkratka detailne pochopite, jak funguje ten kod, ktery se
tech patchu tyka, zjistite, kde je presne problem, a opravite ho.
Ma hypoteza je, ze ty patche nejak opravily obnovovani kontextu po
obsluze vyjimky, takze navratovou hodnotu, kterou ulozite do registru,
prepise puvodni hodnota z ulozeneho kontextu (a tudiz musite navratovou
hodnotu vlozit do struktury s ulozenym kontextem). Na druhou stranu si
rikam, ze na takovou trivialitu byste jiste prisli sami, takze to bude
asi neco jineho ..
M.D.
More information about the NSWI004
mailing list