/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2023 Renesas Electronics Corp. */ #ifndef __ASM_DMA_NONCOHERENT_H #define __ASM_DMA_NONCOHERENT_H #include <linux/dma-direct.h> /* * struct riscv_nonstd_cache_ops - Structure for non-standard CMO function pointers * * @wback: Function pointer for cache writeback * @inv: Function pointer for invalidating cache * @wback_inv: Function pointer for flushing the cache (writeback + invalidating) */ struct riscv_nonstd_cache_ops { void (*wback)(phys_addr_t paddr, size_t size); void (*inv)(phys_addr_t paddr, size_t size); void (*wback_inv)(phys_addr_t paddr, size_t size); }; extern struct riscv_nonstd_cache_ops noncoherent_cache_ops; void riscv_noncoherent_register_cache_ops(const struct riscv_nonstd_cache_ops *ops); #endif /* __ASM_DMA_NONCOHERENT_H */