1 /*
2  * This file is auto-generated. Modifications will be lost.
3  *
4  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5  * for more information.
6  */
7 #ifndef _LINUX_MSM_ION_H
8 #define _LINUX_MSM_ION_H
9 #include <linux/types.h>
10 #define ION_BIT(nr) (1U << (nr))
11 #define TARGET_ION_ABI_VERSION 2
12 enum msm_ion_heap_types {
13   ION_HEAP_TYPE_MSM_START = 6,
14   ION_HEAP_TYPE_SECURE_DMA = ION_HEAP_TYPE_MSM_START,
15   ION_HEAP_TYPE_SYSTEM_SECURE,
16   ION_HEAP_TYPE_HYP_CMA,
17   ION_HEAP_TYPE_SECURE_CARVEOUT,
18 };
19 enum ion_heap_ids {
20   INVALID_HEAP_ID = - 1,
21   ION_CP_MM_HEAP_ID = 8,
22   ION_SECURE_HEAP_ID = 9,
23   ION_SECURE_DISPLAY_HEAP_ID = 10,
24   ION_SPSS_HEAP_ID = 13,
25   ION_ADSP_HEAP_ID = 22,
26   ION_SYSTEM_HEAP_ID = 25,
27   ION_QSECOM_HEAP_ID = 27,
28   ION_HEAP_ID_RESERVED = 31
29 };
30 #define ION_SECURE_CARVEOUT_HEAP_ID 14
31 #define ION_QSECOM_TA_HEAP_ID 19
32 #define ION_AUDIO_HEAP_ID 28
33 #define ION_CAMERA_HEAP_ID 20
34 #define ION_USER_CONTIG_HEAP_ID 26
35 #define ION_FLAG_CP_TOUCH ION_BIT(17)
36 #define ION_FLAG_CP_BITSTREAM ION_BIT(18)
37 #define ION_FLAG_CP_PIXEL ION_BIT(19)
38 #define ION_FLAG_CP_NON_PIXEL ION_BIT(20)
39 #define ION_FLAG_CP_CAMERA ION_BIT(21)
40 #define ION_FLAG_CP_HLOS ION_BIT(22)
41 #define ION_FLAG_CP_SPSS_SP ION_BIT(23)
42 #define ION_FLAG_CP_SPSS_SP_SHARED ION_BIT(24)
43 #define ION_FLAG_CP_SEC_DISPLAY ION_BIT(25)
44 #define ION_FLAG_CP_APP ION_BIT(26)
45 #define ION_FLAG_CP_CAMERA_PREVIEW ION_BIT(27)
46 #define ION_FLAG_CP_CDSP ION_BIT(29)
47 #define ION_FLAG_CP_SPSS_HLOS_SHARED ION_BIT(30)
48 #define ION_FLAGS_CP_MASK 0x6FFE0000
49 #define ION_FLAG_ALLOW_NON_CONTIG ION_BIT(28)
50 #define ION_FLAG_SECURE ION_BIT(ION_HEAP_ID_RESERVED)
51 #define ION_FLAG_POOL_FORCE_ALLOC ION_BIT(16)
52 #define ION_HEAP(bit) ION_BIT(bit)
53 #define ION_IOC_MSM_MAGIC 'M'
54 struct ion_prefetch_regions {
55   __u64 sizes;
56   __u32 vmid;
57   __u32 nr_sizes;
58 };
59 struct ion_prefetch_data {
60   __u64 len;
61   __u64 regions;
62   __u32 heap_id;
63   __u32 nr_regions;
64 };
65 #define ION_IOC_PREFETCH _IOWR(ION_IOC_MSM_MAGIC, 3, struct ion_prefetch_data)
66 #define ION_IOC_DRAIN _IOWR(ION_IOC_MSM_MAGIC, 4, struct ion_prefetch_data)
67 #endif
68