Forum Linux.noyau Programmation modulaire de driver

Posté par  .
Étiquettes : aucune
0
19
août
2005
Bonjour à tous,

Je suis en train de développer un driver pour le noyau 2.4. Afin de structurer mon code je veux le séparer sous la forme de différents modules C. Mais, je tiens à ce que les fonctions échangées entre ces modules ne soient pas visible par le noyaux (risque de conflit ...)

Quelle solution me conseillez vous (si elle existe ) pour me permettre d'avoir une visibilité de mes variables / fonction entre les différents modules de mon driver, mais pas à l'extérieur de ce dernier ?
  • # Prefixe ?

    Posté par  . Évalué à 4.

    Prefixer toutes tes variables/fonctions de maniere a t'assurer l'absence de conflit
    • [^] # Re: Prefixe ?

      Posté par  . Évalué à 1.

      qu'entends tu par préfixer, faire des noms de variable ou de fonction du type : mondriver_nomdemafonction ???
      • [^] # Re: Prefixe ?

        Posté par  . Évalué à 2.

        oui en utilisant 2 ou 3 lettres pour mondriver.
        Deja tu declares en static tout ce qui ne sortira jamais de tes differents "modules .c" , ensuite tu prefixes le reste
        • [^] # Re: Prefixe ?

          Posté par  . Évalué à 1.

          Je trouve pas cette solution très propre mais à priori c'est la seule... Je vais peut être tout mettre dans le même fichier, je ne sais pas ce qui est le mieux.
  • # Au fait ...

    Posté par  . Évalué à 2.

    ... simple curiosite:
    -pourquoi un module pour le noyau 2.4 et pas pour le 2.6 ?
    -quelle(s) fonctionalite(s) apporte ton module ?
    • [^] # Re: Au fait ...

      Posté par  . Évalué à 1.

      En fait je suis en stage en ce moment, l'entreprise dans laquelle je suis, possède des vielles cartes entrées / sortie isa (fabriquer en interne) avec leur driver tournant sous dos. Il m'ont demandé de porter leur appli sous un os interne ça inclu de porter aussi leur drivers (l'os interne utilise une version personnalisé du noyaux 2.4).
  • # J'ai trouvé !!!

    Posté par  . Évalué à 1.

    Le plus propre que j'ai trouvé d'utiliser la macro dans le source de mon driver:

    EXPORT_NO_SYMBOLS;

    Ce qui permet de définir explicitement qu'il n'y a aucun symboles d'exportés par mon driver, Merci le bouquin "Linux device driver devellopement".

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.