linux-4.4.1/dma_buf_attach()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#i9e7762f]
#backlinks
*説明 [#hfbd0fb4]
-パス: [[linux-4.4.1/drivers/dma-buf/dma-buf.c]]
-FIXME: これは何?
--説明
**引数 [#qf8ef28c]
-struct dma_buf *dmabuf
--
--[[linux-4.4.1/dma_buf]]
-struct device *dev
--
--[[linux-4.4.1/device]]
**返り値 [#aaf5079b]
-struct dma_buf_attachment *
--
--[[linux-4.4.1/dma_buf_attachment]]
**参考 [#a1ec3360]
*実装 [#k584cc3e]
/**
* dma_buf_attach - Add the device to dma_buf's attachme...
* calls attach() of dma_buf_ops to allow device-specifi...
* @dmabuf: [in] buffer to attach device to.
* @dev: [in] device to be attached.
*
* Returns struct dma_buf_attachment * for this attachme...
* error.
*/
struct dma_buf_attachment *dma_buf_attach(struct dma_buf...
struct device ...
{
struct dma_buf_attachment *attach;
int ret;
-
--[[linux-4.4.1/dma_buf_attachment]]
if (WARN_ON(!dmabuf || !dev))
return ERR_PTR(-EINVAL);
-
--[[linux-4.4.1/WARN_ON()]]
--[[linux-4.4.1/ERR_PTR()]]
attach = kzalloc(sizeof(struct dma_buf_attachmen...
if (attach == NULL)
return ERR_PTR(-ENOMEM);
-
--[[linux-4.4.1/kzalloc()]]
--[[linux-4.4.1/GFP_KERNEL]]
attach->dev = dev;
attach->dmabuf = dmabuf;
mutex_lock(&dmabuf->lock);
-
--[[linux-4.4.1/mutex_lock()]]
if (dmabuf->ops->attach) {
ret = dmabuf->ops->attach(dmabuf, dev, a...
if (ret)
goto err_attach;
}
list_add(&attach->node, &dmabuf->attachments);
-
--dmabuf->ops は const struct dma_buf_ops * 型
--[[linux-4.4.1/dma_buf_ops]]
--[[linux-4.4.1/list_add()]]
mutex_unlock(&dmabuf->lock);
return attach;
-
--[[linux-4.4.1/mutex_unlock()]]
err_attach:
kfree(attach);
mutex_unlock(&dmabuf->lock);
return ERR_PTR(ret);
-
--[[linux-4.4.1/kfree()]]
}
EXPORT_SYMBOL_GPL(dma_buf_attach);
-
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]
*コメント [#r05057eb]
終了行:
*参照元 [#i9e7762f]
#backlinks
*説明 [#hfbd0fb4]
-パス: [[linux-4.4.1/drivers/dma-buf/dma-buf.c]]
-FIXME: これは何?
--説明
**引数 [#qf8ef28c]
-struct dma_buf *dmabuf
--
--[[linux-4.4.1/dma_buf]]
-struct device *dev
--
--[[linux-4.4.1/device]]
**返り値 [#aaf5079b]
-struct dma_buf_attachment *
--
--[[linux-4.4.1/dma_buf_attachment]]
**参考 [#a1ec3360]
*実装 [#k584cc3e]
/**
* dma_buf_attach - Add the device to dma_buf's attachme...
* calls attach() of dma_buf_ops to allow device-specifi...
* @dmabuf: [in] buffer to attach device to.
* @dev: [in] device to be attached.
*
* Returns struct dma_buf_attachment * for this attachme...
* error.
*/
struct dma_buf_attachment *dma_buf_attach(struct dma_buf...
struct device ...
{
struct dma_buf_attachment *attach;
int ret;
-
--[[linux-4.4.1/dma_buf_attachment]]
if (WARN_ON(!dmabuf || !dev))
return ERR_PTR(-EINVAL);
-
--[[linux-4.4.1/WARN_ON()]]
--[[linux-4.4.1/ERR_PTR()]]
attach = kzalloc(sizeof(struct dma_buf_attachmen...
if (attach == NULL)
return ERR_PTR(-ENOMEM);
-
--[[linux-4.4.1/kzalloc()]]
--[[linux-4.4.1/GFP_KERNEL]]
attach->dev = dev;
attach->dmabuf = dmabuf;
mutex_lock(&dmabuf->lock);
-
--[[linux-4.4.1/mutex_lock()]]
if (dmabuf->ops->attach) {
ret = dmabuf->ops->attach(dmabuf, dev, a...
if (ret)
goto err_attach;
}
list_add(&attach->node, &dmabuf->attachments);
-
--dmabuf->ops は const struct dma_buf_ops * 型
--[[linux-4.4.1/dma_buf_ops]]
--[[linux-4.4.1/list_add()]]
mutex_unlock(&dmabuf->lock);
return attach;
-
--[[linux-4.4.1/mutex_unlock()]]
err_attach:
kfree(attach);
mutex_unlock(&dmabuf->lock);
return ERR_PTR(ret);
-
--[[linux-4.4.1/kfree()]]
}
EXPORT_SYMBOL_GPL(dma_buf_attach);
-
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]
*コメント [#r05057eb]
ページ名: