*参照元 [#p23f5d8a]
#backlinks

*説明 [#gb23e7a1]
-パス: 複数あり
--ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY 有効: [[linux-4.4.1/drivers/base/dma-mapping.c]]
--ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY 無効: [[linux-4.4.1/include/linux/dma-mapping.h]]
--[[linux-4.4.1/ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY]]


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


**引数 [#h240e7b1]
-struct device *dev
--
--[[linux-4.4.1/device]]
-phys_addr_t phys_addr
--
--[[linux-4.4.1/phys_addr_t]]
-dma_addr_t device_addr
--
--[[linux-4.4.1/dma_addr_t]]
-size_t size
--
-int flags
--


**返り値 [#gecf072d]
-int
--


**参考 [#a20b0284]


*実装 [#p56fa5d9]

**ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY 有効: drivers/base/dma-mapping.c [#g0d2e66f]
 /**
  * dmam_declare_coherent_memory - Managed dma_declare_coherent_memory()
  * @dev: Device to declare coherent memory for
  * @phys_addr: Physical address of coherent memory to be declared
  * @device_addr: Device address of coherent memory to be declared
  * @size: Size of coherent memory to be declared
  * @flags: Flags
  *
  * Managed dma_declare_coherent_memory().
  *
  * RETURNS:
  * 0 on success, -errno on failure.
  */
 int dmam_declare_coherent_memory(struct device *dev, phys_addr_t phys_addr,
                                  dma_addr_t device_addr, size_t size, int flags)
 {
         void *res;
         int rc;
 
         res = devres_alloc(dmam_coherent_decl_release, 0, GFP_KERNEL);
         if (!res)
                 return -ENOMEM;
 
-
--[[linux-4.4.1/devres_alloc()]]
--[[linux-4.4.1/dmam_coherent_decl_release()]]

         rc = dma_declare_coherent_memory(dev, phys_addr, device_addr, size,
                                          flags);
-
--[[linux-4.4.1/dma_declare_coherent_memory()]]

         if (rc == 0)
                 devres_add(dev, res);
         else
                 devres_free(res);
 
-
--[[linux-4.4.1/devres_add()]]
--[[linux-4.4.1/devres_free()]]

         return rc;
 }
 EXPORT_SYMBOL(dmam_declare_coherent_memory);
-
--[[linux-4.4.1/EXPORT_SYMBOL()]]


**ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY 無効: include/linux/dma-mapping.h [#mcfaf77f]
 static inline int dmam_declare_coherent_memory(struct device *dev,
                                 phys_addr_t phys_addr, dma_addr_t device_addr,
                                 size_t size, gfp_t gfp)
 {
         return 0;
 }


*コメント [#r3a2d8f1]


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