参照元

説明

引数

返り値

参考

実装

/**
 * vb2_core_queue_init() - initialize a videobuf2 queue
 * @q:          videobuf2 queue; this structure should be allocated in driver
 *
 * The vb2_queue structure should be allocated by the driver. The driver is
 * responsible of clearing it's content and setting initial values for some
 * required entries before calling this function.
 * q->ops, q->mem_ops, q->type and q->io_modes are mandatory. Please refer
 * to the struct vb2_queue description in include/media/videobuf2-core.h
 * for more information.
 */
int vb2_core_queue_init(struct vb2_queue *q)
{
        /*
         * Sanity check
         */
        if (WARN_ON(!q)                   ||
            WARN_ON(!q->ops)              ||
            WARN_ON(!q->mem_ops)          ||
            WARN_ON(!q->type)             ||
            WARN_ON(!q->io_modes)         ||
            WARN_ON(!q->ops->queue_setup) ||
            WARN_ON(!q->ops->buf_queue))
                return -EINVAL;
        INIT_LIST_HEAD(&q->queued_list);
        INIT_LIST_HEAD(&q->done_list);
        spin_lock_init(&q->done_lock);
        mutex_init(&q->mmap_lock);
        init_waitqueue_head(&q->done_wq);
        if (q->buf_struct_size == 0)
                q->buf_struct_size = sizeof(struct vb2_buffer);
        return 0;
}
EXPORT_SYMBOL_GPL(vb2_core_queue_init);

コメント


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-02-08 (月) 17:20:08