[OSy] .entry sekce a volani SYSCALL
Michal Foltýn
mike at section.cz
Fri Dec 29 12:26:36 CET 2006
Mel bych dve otazky:
Jakym zpusobem definovat sekci .entry? A kde ji provadet? Je mi jasne,
ze funkce __entry bude prvni funkci, ktera se zavola po prepnuti do user
modu, ale jakym zpusobem definovat, ze zrovna tato funkce se ma zavolat?
My to zatim trochu obchazime tim, ze vime presne adresu kde je librt.a
umisteno a tam se prepiname, ale pres vyuziti sekce .entry by to bylo
asi cistsi.
Druha otazka souvisi s prechodem z user modu do kernelu pres volani
SYSCALL. Pred samotnym volanim ukladame do registru a0-a3 parametry jako
kod funkce a parametry fce. Potom se zavola instrukce syscall, ktera
zpusobi vyjimku a kontrolu prevezme general exception handler v kernelu.
Cemu nerozumim je to, proc kdyz si hned jako prvni vec v exception
handleru necham vypsat obsah registru, tak v registrech a0-a3 jsou uplne
jine hodnoty nez ocekavam. Mohli byste nas prosim nekdo nasmerovat co
delame spatne nebo co mame zhruba udelat, aby na tato vec fungovala,
protoze my tady nad tim uz sedime tak 4. den a porad nic :( a uz moc
nevime kam se divat.
Diky moc
Michal F.
More information about the NSWI004
mailing list