Question

Je porte un pilote d'application / PCI de vxWorks vers Linux et j'aimerais conserver la même architecture si possible. Le pilote actuel comporte 2 tâches (threads) qui communiquent entre elles à l'aide de files de messages. Existe-t-il un mécanisme pour communiquer entre les threads du noyau? Les files de messages sont utilisées pour transmettre les adresses de tampon et les informations de taille afin que les tâches puissent utiliser DMA pour déplacer de grandes quantités de données.

Était-ce utile?

La solution

Je vous déconseille vivement de conserver l'architecture VxWorks sous Linux. La prolifération des threads du noyau est mal vue, votre code ne le transformera jamais en arborescence officielle du noyau. Même si cela vous est égal, êtes-vous sûr à 100% que vous souhaitiez développer un pilote de manière non standard? Les choses seraient beaucoup plus simples si vous vous débarrassiez de ces deux tâches. BTW, pourquoi diable avez-vous besoin de tâches pour le pilote PCI pour commencer?

Autres conseils

On dirait que l'interface workqueue pourrait être ce que vous recherchez - ou pour quelque chose de plus léger, un kfifo associé à un rwsem sémaphore.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top