*参照元 [#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]