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

Raspunde prin e-mail lui