名 前
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 を 引 数 に
と り 、 nlmsghdr の
nlmsg_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 を 用 い る ほ う が 良 い 。
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。