linux/include/uapi/misc/fastrpc.h

/* 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__ */