netlink - Macros pour netlink
Bibliothèque C standard (
libc,
-lc)
#include <asm/types.h>
#include <linux/netlink.h>
int NLMSG_ALIGN(size_t len);
int NLMSG_LENGTH(size_t len);
int NLMSG_SPACE(size_t len);
void *NLMSG_DATA(struct nlmsghdr *nlh);
struct nlmsghdr *NLMSG_NEXT(struct nlmsghdr *nlh, int len);
int NLMSG_OK(struct nlmsghdr *nlh, int len);
int NLMSG_PAYLOAD(struct nlmsghdr *nlh, int len);
<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.
Ces macros sont des extensions de Linux non standard.
Il vaut souvent mieux utiliser la bibliothèque netlink via
libnetlink que par les interfaces de bas niveau du noyau.
libnetlink(3),
netlink(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]> et David Prévot <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]