Linux |
CentOS 4.8 |
|
![]() |
netlink(3) |
![]() |
|
netlink − Macros pour netlink |
#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); |
|
netlink.h définit plusieurs macros standardes pour accéder ou créer un datagramme netlink. Elles sont similaires dans leurs principes avec les macros définies dans cmsg(3) pour les données auxiliaires. Le tampon passé à un netlink ne devrait pas être accédé autrement que par ces macros. |
NLMSG_ALIGN
|
Arrondit la taille du message netlink pour l’aligner proprement. |
|
NLMSG_LENGTH |
|
Prend la taille brute comme argument et retourne la taille alignée à stocker dans le champs nlmsg_taille de nlmsghdr. |
|
NLMSG_SPACE |
|
Retourne le nombre d’octets d’un message netlink (pas la taille alignée). |
|
NLMSG_DATA |
|
Retourne un pointeur sur l’objet associé au nlmsghdr passé. |
|
NLMSG_NEXT |
|
Récupère la partie suivante d’un message multipartie Get the next nlmsghdr . L’appellant doit vérifier que le nlmsghdr courrant n’a pas le NLMSG_DONE positionné (cette fonction retourne NULL à la fin). Le paramètre taille est une lvalue [Ndt: expression pouvant être affectée : variable, champs, ...] contenant la taille restante du tampon du message. Cette macro décrémente cette taille par celle de l’en-tête de message. |
|
NLMSG_OK |
|
Retourne vrai si le message netlink n’est pas tronqué et prêt à être utilisé. |
|
NLMSG_PAYLOAD |
|
Retourne la taille de l’objet associé à nlmsghdr. |
|
Il vaut souvent mieux utiliser la bibliothèque netlink via libnetlink que par les interfaces de bas niveau du noyau. |
|
netlink(7) et ftp://ftp.inr.ac.ru/ip-routing/iproute2* pour libnetlink. |
|
Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999 |
![]() |
netlink(3) | ![]() |