1. NOM

netlink - Macros pour netlink

2. SYNOPSIS

 
Sélectionnez
#include <asm/types.h>
#include <linux/netlink.h>
int NLMSG_ALIGN(size_t taille);
int NLMSG_LENGTH(size_t taille);
int NLMSG_SPACE(size_t taille);
void *NLMSG_DATA(struct nlmsghdr *nlh);
struct nlmsghdr *NLMSG_NEXT(struct nlmsghdr *nlh, int taille);
int NLMSG_OK(struct nlmsghdr *nlh, int taille);
int NLMSG_PAYLOAD(struct nlmsghdr *nlh, int taille);

3. DESCRIPTION

<linux/netlink.h> définit plusieurs macros standard pour accéder ou créer un datagramme netlink. Elles sont similaires dans leurs principes aux macros définies dans cmsg(3) pour les données auxiliaires. Le tampon passé à une socket netlink ne devrait pas être manipulé autrement que par ces macros.

  • NLMSG_ALIGN()
        Arrondit la taille du message netlink pour avoir un alignement correct.
  • NLMSG_LENGTH()
        Prend la taille du message, len, comme argument et retourne la taille alignée à stocker dans le champ nlmsg_len de nlmsghdr.
  • NLMSG_SPACE()
        Renvoie le nombre d'octets qu'un message netlink occuperait pour la quantité de données len.
  • NLMSG_DATA()
        Retourne un pointeur sur l'objet associé au nlmsghdr passé.

  •     NLMSG_NEXT() Récupère la structure nlmsghdr suivante d'un message multiple. L'appelant doit vérifier que le nlmsghdr en cours n'a pas l'attribut NLMSG_DONE positionné cette fonction ne retourne pas NULL à la fin. Le paramètre len est une lvalue contenant la taille restante du tampon du message. La macro diminue cette taille de celle de l'en-tête de message.
  • NLMSG_OK()
        Renvoie vrai si le message netlink n'est pas tronqué et est dans un format adapté au traitement.
  • NLMSG_PAYLOAD()
        Renvoie la taille des données associées à nlmsghdr.

4. CONFORMITÉ

Ces macros sont des extensions de Linux non standard.

5. NOTES

Il vaut souvent mieux utiliser la bibliothèque netlink via libnetlink que par les interfaces de bas niveau du noyau.

6. VOIR AUSSI

7. COLOPHON

Cette page fait partie de la publication 3.52 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

8. TRADUCTION

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Thierry Vignaud (2002), Alain Portal <http://manpagesfr.free.fr/> (2006). Nicolas François et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».