1 /* SPDX-License-Identifier: GPL-2.0 */ 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 14 struct fastrpc_invoke_args { 15 __u64 ptr; 16 __u64 length; 17 __s32 fd; 18 __u32 reserved; 19 }; 20 21 struct fastrpc_invoke { 22 __u32 handle; 23 __u32 sc; 24 __u64 args; 25 }; 26 27 struct fastrpc_init_create { 28 __u32 filelen; /* elf file length */ 29 __s32 filefd; /* fd for the file */ 30 __u32 attrs; 31 __u32 siglen; 32 __u64 file; /* pointer to elf file */ 33 }; 34 35 struct fastrpc_alloc_dma_buf { 36 __s32 fd; /* fd */ 37 __u32 flags; /* flags to map with */ 38 __u64 size; /* size */ 39 }; 40 41 #endif /* __QCOM_FASTRPC_H__ */ 42