Jak pridat volani do kernelu...

Martin Mares mj na atrey.karlin.mff.cuni.cz
Sobota Březen 22 10:49:18 CET 1997


Hi,

> potrebuju udelat v kernelu specielni funkce a aby se daly volat z
> programu. Zjistil jsem ze se definuji v entry.S ale nevim jestli je to
> vsechno. Nevim do jakeho includu mam co dat aby gcc vedel ze ma linkovat
> proti kernelu atp.
> 
> Nemate s tim nekdo zkusenosti?

   Ja jsem si s tim kdysi trochu hral, ale nakonec jsem vzdy dospel k zaveru,
ze pridavat syscall neni to prave reseni -- obvykle to daleko lepe vyresil
nejaky mirne nestandardne se chovajici device driver ci neco podobneho.

   Samotne pridani syscallu spociva v oeditovani entry.S a include/asm/unistd.h,
pouziti pak v aplikaci makra _syscallX (kde X je pocet parametru), cimz vznikne
assemblerska inline-funkce pro zavolani prislusneho syscallu. Standardni cally
ovsem timto zpusobem volany nejsou -- jdou pres libc, ktera tyto funkce obsahuje
vcetne nastavovani errno v pripade chyby.

									Martin


Další informace o konferenci Linux