Linux |
CentOS 5.3 |
|
__skb_unlink(9) |
__skb_unlink, skb_unlink − retire un sk_buff de sa liste |
#include <linux/skbuff.h> |
void __skb_unlink(struct sk_buff *skb, struct sk_buff_head *list); |
void skb_unlink(struct sk_buff *skb); |
La fonction skb_unlink est une version sécurisée de __skb_unlink. __skb_unlink enlève skb de son sk_buff_head, décrémente le pointeur qlen de liste, et retire proprement le sk_buff de sa file. Cette fonction devrait toujours être utilisée 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). La plupart des utilisateurs n’appelleront pas directement __skb_unlink car elle nécessite deux arguments et ne désactive pas les interruptions. skb_unlink détermine la liste depuis laquelle skb doit être enlevée et désactive les interruptions. |
Aucune |
Il est important de constater que les différences entre __skb_unlink et skb_unlink, 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. |
Linux 1.0+ |
intro(9), skb_dequeue(9), skb_insert(9), skb_queue_head(9), skb_queue_tail(9) /usr/src/linux/net/core/skbuff.c /usr/src/linux/net/ipv4/af_inet.c /usr/src/linux/net/ipv4/ip_output.c /usr/src/linux/net/ipv4/tcp.c |
Cyrus Durgin <cider@speakeasy.org> |
Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999 |
__skb_unlink(9) |