1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
3 #ifndef __QCOM_FASTRPC_H__
4 #define __QCOM_FASTRPC_H__
6 #include <linux/types.h>
8 #define FASTRPC_IOCTL_ALLOC_DMA_BUFF _IOWR('R', 1, struct fastrpc_alloc_dma_buf)
9 #define FASTRPC_IOCTL_FREE_DMA_BUFF _IOWR('R', 2, __u32)
10 #define FASTRPC_IOCTL_INVOKE _IOWR('R', 3, struct fastrpc_invoke)
11 #define FASTRPC_IOCTL_INIT_ATTACH _IO('R', 4)
12 #define FASTRPC_IOCTL_INIT_CREATE _IOWR('R', 5, struct fastrpc_init_create)
13 #define FASTRPC_IOCTL_MMAP _IOWR('R', 6, struct fastrpc_req_mmap)
14 #define FASTRPC_IOCTL_MUNMAP _IOWR('R', 7, struct fastrpc_req_munmap)
15 #define FASTRPC_IOCTL_INIT_ATTACH_SNS _IO('R', 8)
17 struct fastrpc_invoke_args
{
24 struct fastrpc_invoke
{
30 struct fastrpc_init_create
{
31 __u32 filelen
; /* elf file length */
32 __s32 filefd
; /* fd for the file */
35 __u64 file
; /* pointer to elf file */
38 struct fastrpc_alloc_dma_buf
{
40 __u32 flags
; /* flags to map with */
41 __u64 size
; /* size */
44 struct fastrpc_req_mmap
{
46 __u32 flags
; /* flags for dsp to map with */
47 __u64 vaddrin
; /* optional virtual address */
48 __u64 size
; /* size */
49 __u64 vaddrout
; /* dsp virtual address */
52 struct fastrpc_req_munmap
{
53 __u64 vaddrout
; /* address to unmap */
54 __u64 size
; /* size */
57 #endif /* __QCOM_FASTRPC_H__ */