zion -  skb_insert

Nom

__skb_insert, skb_insert, skb_append - insérer un sk_buff dans une liste

Résumé

#include <linux/skbuff.h> .HP void __skb_insert(struct sk_buff *newsk , struct sk_buff *prev , struct sk_buff *next , struct sk_buff_head *list )
void skb_insert(struct sk_buff *old , struct sk_buff *newsk )
void skb_append(struct sk_buff *old , struct sk_buff *newsk )


Description

skb_insert et skb_append sont essentiellement des macros pour la fonction __skb_insert (voir NOTES, plus bas). __skb_insert insère newsk dans list, et réinitialise les pointeurs next et prev appropriés. prev et next sont utilisés pour insérer newsk dans list. Après avoir affecté les pointeurs next et prev dans newsk, __skb_insert affecte le pointeur prev dans next et le pointeur prev dans prev, ainsi que le pointeur list dans newsk, et incrémente le compteur qlen dans list. skb_insert et skb_append devraient toujours être utilisées pour ajouter sk_buffs plutôt que de le faire "à la main" car elle le fait de manière standard, proprement (les interruptions sont momentanément désactivées) (voir NOTES cidessous). Ces deux fonctions utilisent le pointeur list dans old pour déterminer quelle liste newsk devrait être attachée. La fonction skb_insert ajoute newsk dans la liste avant old. La fonction skb_append ajoute newsk dans la liste après old.

Valeur renvoyée

Aucune.

Notes

Il est important de constater que les différences entre __skb_dequeue et skb_dequeue, mais ausi entre les fonctions __skb_ et leur équivalent skb_. Les fonctions __skb_ ne sont pas atomiques (Ndt : non réentrantes) et devraient être utilisées après avoir désactivé les interruptions. Pour faciliter l'écriture des pilotes, les fonctions skb_ sont fournies ; elles désactivent et réactivent les interruptions de manière transparente en plus de réaliser la tâche demandée.

Disponibilité

Linux 1.0+

Voir aussi

intro (9), skb_queue_head (9), skb_queue_tail (9)

/usr/src/linux/net/ax25/af_ax25.c /usr/src/linux/net/core/skbuff.c /usr/src/linux/net/ipv4/tcp_input.c /usr/src/linux/net/netrom/nr_in.c

Auteur

Cyrus Durgin <cider@speakeasy.org>

Traduction

Thierry Vignaud < tvignaud@mandrakesoft.com >, 1999
Poster un commentaire
Utilisateur
Mot de passe
 
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?