*参照元 [#qf5967e4]
#backlinks

*説明 [#kca58dec]
-パス: [[linux-4.4.1/drivers/media/v4l2-core/videobuf2-internal.h]]

-FIXME: これは何?
--説明


**引数 [#m4d38eac]
-struct vb2_buffer *vb
--
--[[linux-4.4.1/vb2_buffer]]
-op
--トークン。呼び出す関数名を指定する。struct vb2_mem_ops のメンバ名である必要がある。
--[[linux-4.4.1/vb2_mem_ops]]
-args...
--関数に渡す引数


**返り値 [#c9b589e7]
-void *
--


**参考 [#l08035ff]


*実装 [#ce7c46f6]

**CONFIG_VIDEO_ADV_DEBUG 有効 [#ad69f7de]

 #define call_ptr_memop(vb, op, args...)                                 \
 ({                                                                      \
         struct vb2_queue *_q = (vb)->vb2_queue;                         \
         void *ptr;                                                      \
                                                                         \
-
--[[linux-4.4.1/vb2_queue]]

         log_memop(vb, op);                                              \
-
--[[linux-4.4.1/log_memop()]]

         ptr = _q->mem_ops->op ? _q->mem_ops->op(args) : NULL;           \
         if (!IS_ERR_OR_NULL(ptr))                                       \
                 (vb)->cnt_mem_ ## op++;                                 \
-q->memops は const struct vb2_mem_ops * 型
-
--q->memops は const struct vb2_mem_ops * 型
--[[linux-4.4.1/vb2_mem_ops]]
--[[linux-4.4.1/IS_ERR_OR_NULL()]]

         ptr;                                                            \
 })


**CONFIG_VIDEO_ADV_DEBUG 無効 [#e6d6489f]

 #define call_ptr_memop(vb, op, args...)                                 \
         ((vb)->vb2_queue->mem_ops->op ?                                 \
                 (vb)->vb2_queue->mem_ops->op(args) : NULL)
-
-q->vb2_queue は struct vb2_queue * 型
-q->vb2_queue->mem_ops は const struct vb2_mem_ops * 型
--vb->vb2_queue は struct vb2_queue * 型
--vb->vb2_queue->mem_ops は const struct vb2_mem_ops * 型
--[[linux-4.4.1/vb2_queue]]
--[[linux-4.4.1/vb2_mem_ops]]


*コメント [#f6d2ce22]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS