[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