/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ #ifndef __QCOM_FASTRPC_H__ #define __QCOM_FASTRPC_H__ #include <linux/types.h> #define FASTRPC_IOCTL_ALLOC_DMA_BUFF … #define FASTRPC_IOCTL_FREE_DMA_BUFF … #define FASTRPC_IOCTL_INVOKE … #define FASTRPC_IOCTL_INIT_ATTACH … #define FASTRPC_IOCTL_INIT_CREATE … #define FASTRPC_IOCTL_MMAP … #define FASTRPC_IOCTL_MUNMAP … #define FASTRPC_IOCTL_INIT_ATTACH_SNS … #define FASTRPC_IOCTL_INIT_CREATE_STATIC … #define FASTRPC_IOCTL_MEM_MAP … #define FASTRPC_IOCTL_MEM_UNMAP … #define FASTRPC_IOCTL_GET_DSP_INFO … /** * enum fastrpc_map_flags - control flags for mapping memory on DSP user process * @FASTRPC_MAP_STATIC: Map memory pages with RW- permission and CACHE WRITEBACK. * The driver is responsible for cache maintenance when passed * the buffer to FastRPC calls. Same virtual address will be * assigned for subsequent FastRPC calls. * @FASTRPC_MAP_RESERVED: Reserved * @FASTRPC_MAP_FD: Map memory pages with RW- permission and CACHE WRITEBACK. * Mapping tagged with a file descriptor. User is responsible for * CPU and DSP cache maintenance for the buffer. Get virtual address * of buffer on DSP using HAP_mmap_get() and HAP_mmap_put() APIs. * @FASTRPC_MAP_FD_DELAYED: Mapping delayed until user call HAP_mmap() and HAP_munmap() * functions on DSP. It is useful to map a buffer with cache modes * other than default modes. User is responsible for CPU and DSP * cache maintenance for the buffer. * @FASTRPC_MAP_FD_NOMAP: This flag is used to skip CPU mapping, * otherwise behaves similar to FASTRPC_MAP_FD_DELAYED flag. * @FASTRPC_MAP_MAX: max count for flags * */ enum fastrpc_map_flags { … }; enum fastrpc_proc_attr { … }; /* Fastrpc attribute for memory protection of buffers */ #define FASTRPC_ATTR_SECUREMAP … struct fastrpc_invoke_args { … }; struct fastrpc_invoke { … }; struct fastrpc_init_create { … }; struct fastrpc_init_create_static { … }; struct fastrpc_alloc_dma_buf { … }; struct fastrpc_req_mmap { … }; struct fastrpc_mem_map { … }; struct fastrpc_req_munmap { … }; struct fastrpc_mem_unmap { … }; struct fastrpc_ioctl_capability { … }; #endif /* __QCOM_FASTRPC_H__ */