[Team2013] c constructor attribute

Andreea-Cristina Hodea andreea.cristina.hodea at gmail.com
Fri Apr 12 12:44:58 EEST 2013


Salut Ionut,

Asa m-am gandit si eu si asa am implementat pana acum (inca nu am comis),
dar cu o exceptie: sw_init nu primeste un pointer la switch_operations. Eu
m-am gandit ca va accesa switch_operations prin, de exemplu,
lisa_ctx.sw_ops.functie, unde lisa_ctx este initializat cu sintaxa de C99
in lisa.c si exportat prin lisa.h. Nu am un motiv bun pentru asta decat ca
daca sw_init va fi constructor nu stiu cine ii va da ca argument sw_ops.

Pentru lisa, sw_init ar trebui sa faca chiar si mai putin decat vlan_add,
fiindca exista sw_vdb_init in kernel. Astfel, sw_init trebuie sa faca doar
shared_set_vlan_desc(vlan_uri_default, descrieri_default).

Zi faina,
Andreea


2013/4/12 Ionut Nicu <ionut.nicu at mindbit.ro>

> Buna Andreea,
>
> Cred ca ai dreptate. Ar trebui sa existe o functie de initializare a
> switch-ului sw_init (sau cum vreti voi sa o botezati) care sa fie comuna
> tuturor backend-urilor, pentru ca nu face nimic specific vreunui
> back-end. Prin "comuna tuturor backend-urilor" eu inteleg ca nu ar
> trebui sa fie membru in structura switch_operations.
>
> Functia asta ar tb sa fie adnotata cu attribute constructor si sa
> primeasca ca parametru un pointer catre switch_operations pentru a putea
> accesa metodele specifice back-endului curent pentru crearea de
> vlan-uri). Ar trebui sa apeleze shared_init() pentru crearea segmentului
> de memorie shared, apoi folosind pointer-ul la switch_operations sa
> creeze vlan-urile default.
>
> E ok pt voi abordarea asta?
>
> Ionut.
>
> On Wed, 2013-04-10 at 20:10 +0300, Andreea-Cristina Hodea wrote:
> > Salut,
> >
> >
> > Cred ca pana la urma nu e ok sa adaugam vlan-urile default din
> > shared_init. Am scris de ce aici[1], asa ca as propune ca sw_api sa
> > aiba o functie init cu atributul constructor, fie ea sw_init, care
> > (poate printre altele) sa adauge vlan-urile default. In LiSA
> > Middleware asta ar insemna sa apeleze lisa_ctx.vlan_add pentru fiecare
> > vlan default.
> >
> >
> > Ceea ce nu stiu, insa, este ce se intampla daca o alta implementare a
> > API-ului omite sa implementeze sw_init? La incarcarea bibliotecii
> > dinamice primesc eroare sau raman cu vlan-urile default lipsa? Am mai
> > citit cate ceva despre acest atribut aici[2].
> >
> >
> > [1] https://github.com/lisa-project/lisa-user/issues/10
> > [2]
> http://stackoverflow.com/questions/2053029/how-exactly-does-attribute-constructor-work
> >
> >
> > Andreea
> > _______________________________________________
> > Team2013 mailing list
> > Team2013 at lisa.mindbit.ro
> > http://lisa.mindbit.ro/mailman/listinfo/team2013
>
>
> _______________________________________________
> Team2013 mailing list
> Team2013 at lisa.mindbit.ro
> http://lisa.mindbit.ro/mailman/listinfo/team2013
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lisa.mindbit.ro/pipermail/team2013/attachments/20130412/a8919f24/attachment.html 


More information about the Team2013 mailing list