Manpages

名 前

netlink − netlink マ ク ロ

書 式

#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> で は 、 netlink デ ー タ グ ラ ム に ア ク セ ス し た り 、 こ れ を 作 成 す る た め の 標 準 マ ク ロ が い く つ か 定 義 さ れ て い る 。 こ れ ら は cmsg(3) で 定 義 さ れ て い る 補 助 デ ー タ (auxiliary data) 用 の マ ク ロ と 、 そ の 精 神 に お い て 似 て い る も の で あ る 。 netlink ソ ケ ッ ト に 対 し て や り と り さ れ る バ ッ フ ァ ー に は 、 必 ず こ れ ら の マ ク ロ だ け を 使 っ て ア ク セ ス す べ き で あ る 。
NLMSG_ALIGN

netlink メ ッ セ ー ジ の 長 さ を 丸 め て 正 し く 揃 え る 。

NLMSG_LENGTH 格 納 領 域 (payload) の 長 さ len を 引 数 に と り 、 nlmsghdrnlmsg_len フ ィ ー ル ド に 代 入 で き る 揃 え ら れ た 長 さ (aligned length) を 返 す 。
NLMSG_SPACE
ペ イ ロ ー ド の 長 さ が len の netlink メ ッ セ ー ジ の バ イ ト 数 を 返 す 。
NLMSG_DATA
与 え た nlmsghdr に 関 連 づ け ら れ た 格 納 領 域 へ の ポ イ ン タ ー を 返 す 。
NLMSG_NEXT
マ ル チ パ ー ト メ ッ セ ー ジ に お い て 、 次 の nlmsghdr を 入 手 す る 。 こ れ を 呼 び 出 す と き に は 、 現 在 の nlmsghdr で NLMSG_DONE が セ ッ ト さ れ て い な い こ と を 確 認 し な け れ ば な ら な い 。 こ の 関 数 は 終 端 で NULL を 返 さ な い か ら で あ る 。 len 引 数 は メ ッ セ ー ジ バ ッ フ ァ ー の 残 り 長 さ が 入 っ た 左 辺 値 で あ る 。 こ の マ ク ロ は こ の 引 数 か ら メ ッ セ ー ジ ヘ ッ ダ ー の 長 さ 分 を 差 し 引 く 。
NLMSG_OK

Netlink メ ッ セ ー ジ が 途 切 れ て お ら ず 、 か つ 解 釈 可 能 な 形 の 場 合 で あ れ ば 真 を 返 す 。

NLMSG_PAYLOAD

nlmsghdr に 関 連 づ け ら れ た 格 納 領 域 の 長 さ を 返 す 。

準 拠

こ れ ら の マ ク ロ は 非 標 準 で 、 Linux で の 拡 張 で あ る 。

注 意

通 常 は カ ー ネ ル の 低 レ ベ ル イ ン タ ー フ ェ イ ス よ り も 、 libnetlink 経 由 で netlink を 用 い る ほ う が 良 い 。

関 連 項 目

libnetlink(3), netlink(7)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。