1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 3 #ifndef __QCOM_FASTRPC_H__ 4 #define __QCOM_FASTRPC_H__ 5 6 #include <linux/types.h> 7 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) 16 17 struct fastrpc_invoke_args { 18 __u64 ptr; 19 __u64 length; 20 __s32 fd; 21 __u32 reserved; 22 }; 23 24 struct fastrpc_invoke { 25 __u32 handle; 26 __u32 sc; 27 __u64 args; 28 }; 29 30 struct fastrpc_init_create { 31 __u32 filelen; /* elf file length */ 32 __s32 filefd; /* fd for the file */ 33 __u32 attrs; 34 __u32 siglen; 35 __u64 file; /* pointer to elf file */ 36 }; 37 38 struct fastrpc_alloc_dma_buf { 39 __s32 fd; /* fd */ 40 __u32 flags; /* flags to map with */ 41 __u64 size; /* size */ 42 }; 43 44 struct fastrpc_req_mmap { 45 __s32 fd; 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 */ 50 }; 51 52 struct fastrpc_req_munmap { 53 __u64 vaddrout; /* address to unmap */ 54 __u64 size; /* size */ 55 }; 56 57 #endif /* __QCOM_FASTRPC_H__ */ 58