*参照元 [#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 attachments list; optionally,
  * calls attach() of dma_buf_ops to allow device-specific attach functionality
  * @dmabuf:     [in]    buffer to attach device to.
  * @dev:        [in]    device to be attached.
  *
  * Returns struct dma_buf_attachment * for this attachment; returns ERR_PTR on
  * error.
  */
 struct dma_buf_attachment *dma_buf_attach(struct dma_buf *dmabuf,
                                           struct device *dev)
 {
         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_attachment), GFP_KERNEL);
         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, attach);
                 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]

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