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> ».