*参照元 [#p4da28f6] #backlinks *説明 [#s18dfe95] -パス: [[linux-4.4.1/drivers/media/v4l2-core/videobuf2-internal.h]] -FIXME: これは何? --説明 **引数 [#tac31281] -vb --V4L2 キュー。通常は struct vb2_buffer * 型の変数を渡す。 --[[linux-4.4.1/vb2_buffer]] -op --バッファ操作関数名。vb->vb2_queue->ops->op(args) が呼ばれる。 --vb->vb2_queue は struct vb2_queue * 型 --[[linux-4.4.1/vb2_queue]] --vb->vb2_queue->ops は const struct vb2_ops * 型 --[[linux-4.4.1/vb2_ops]] -args --関数に渡す引数。 **返り値 [#t83af510] -int --vb->vb2_queue->ops->op が NULL なら 0 --それ以外の場合はキュー操作関数の返り値に準拠する。 **参考 [#l1f220d4] *実装 [#h8c8e630] #define call_vb_qop(vb, op, args...) \ ({ \ int err; \ \ log_vb_qop(vb, op); \ - --[[linux-4.4.1/log_vb_qop()]] err = (vb)->vb2_queue->ops->op ? \ (vb)->vb2_queue->ops->op(args) : 0; \ if (!err) \ (vb)->cnt_ ## op++; \ err; \ }) *コメント [#r09a4c31]