*参照元 [#z61f0a61] #backlinks *説明 [#s016d6c0] -パス: [[linux-4.4.1/]] -パス: [[linux-4.4.1/drivers/media/v4l2-core/videobuf2-internal.h]] -V4L2 キューの操作関数を呼び出すためのヘルパーマクロ。 **引数 [#r137f46b] -q --V4L2 キュー。通常は struct vb2_queue * 型の変数を渡す。 --[[linux-4.4.1/vb2_queue]] -op --バッファ操作関数名。q->ops->op(args) が呼ばれる。 --q->ops は const struct vb2_ops * 型 --[[linux-4.4.1/vb2_ops]] -args --関数に渡す引数。 **返り値 [#f25c5ecd] -int --キューが NULL, キュー操作関数が NULL のときは何もせず 0 を返す。 --それ以外の場合はキュー操作関数の返り値に準拠する。 **参考 [#jb1cbe9a] *実装 [#y9a80f22] #define call_qop(q, op, args...) \ ({ \ int err; \ \ log_qop(q, op); \ - --[[linux-4.4.1/log_qop()]] err = (q)->ops->op ? (q)->ops->op(args) : 0; \ if (!err) \ (q)->cnt_ ## op++; \ err; \ }) *コメント [#w1a0d4b8]