Scroll to navigation

SKB_INSERT(9) Fonctions du noyau Linux SKB_INSERT(9)

NOM

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

SYNOPSIS

#include <linux/skbuff.h>

void __skb_insert(struct sk_buff *newsk, struct sk_buff *prev, struct sk_buff *next, struct sk_buff_head *list)

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

19 mars 1999 Linux