On 4/21/06, Lorin Scraba wrote:
> Salut.
> Am modificat o bucata de cod ( compilata built-in ) din kernel ca sa apeleze
> o functie dintr-un
> modul.
> Se compileaza tot frumos ( modul + built-in stuff ) dar cand ajunge la
> partea de link-are apare o horoare cum ca functia respectiva nu are nici
> o referinta.
>
> In Module.symvers functia apare, in codul build-in e definita ca
> 'extern' , in modul o export cu macro-ul EXPORT_SYMBOL_GPL().
>
> In codul built-in am ceva de genul:
>
> extern int (*functie)(struct sk_buff *);
>
> if ( functie && (*functie)(skb) )
> printk(...);
>
> In modul:
>
> int functie(....) {
> }
> EXPORT_SYMBOL_GPL(functie)
>
Încearcă ceva de genul:
În kernel:
int (*functie)(struct sk_buff *);
...
void set_functie(int (*f)(struct sk_buff*)){
functie = f;
}
EXPORT_SYMBOL(set_functie);
...
if (functie) {
functie(skb);
}
Iar in modul:
extern void set_functie(int (*f)(struct sk_buff*));
....
set_functie(functia_mea);
> Multumesc
> --
> + Lorin
> + BOFH excuse #407: Route flapping at the NAP.
Dacă ai nevoie pentru a intercepta pachete, poate ar trebui sa iei în
considerare interfaţa netfilter.
Tudor
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug