1555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling/****************************************************************************
2555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ****************************************************************************
3555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***
4555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***   This header was automatically generated from a Linux kernel header
5555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***   of the same name, to make information necessary for userspace to
6555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***   call into the kernel available to libc.  It contains only constants,
7555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***   structures, and macros generated from the original header, and thus,
8555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***   contains no copyrightable information.
9555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***
10555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***   To edit the content of this header, modify the corresponding
11555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***   source file (e.g. under external/kernel-headers/original/) then
12555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***   run bionic/libc/kernel/tools/update_all.py
13555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***
14555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***   Any manual change here will be lost the next time this script will
15555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***   be run. You've been warned!
16555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ***
17555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ****************************************************************************
18555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling ****************************************************************************/
19938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#ifndef _UAPI_MSM_ION_H
20938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define _UAPI_MSM_ION_H
21a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson#include "ion.h"
22938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Gobyenum msm_ion_heap_types {
23938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_HEAP_TYPE_MSM_START = ION_HEAP_TYPE_CUSTOM + 1,
25938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_HEAP_TYPE_DMA = ION_HEAP_TYPE_MSM_START,
26938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_HEAP_TYPE_SECURE_DMA,
275491e9f18dd25f05f08d07c562fbd42745d5a6e3Benoit Goby ION_HEAP_TYPE_REMOVED,
28a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby};
30938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Gobyenum ion_heap_ids {
31938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby INVALID_HEAP_ID = -1,
325491e9f18dd25f05f08d07c562fbd42745d5a6e3Benoit Goby ION_CP_MM_HEAP_ID = 8,
33a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_CP_MFC_HEAP_ID = 12,
35938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_CP_WB_HEAP_ID = 16,
36938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_CAMERA_HEAP_ID = 20,
375491e9f18dd25f05f08d07c562fbd42745d5a6e3Benoit Goby ION_SYSTEM_CONTIG_HEAP_ID = 21,
38a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_ADSP_HEAP_ID = 22,
40938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_PIL1_HEAP_ID = 23,
41938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_SF_HEAP_ID = 24,
425491e9f18dd25f05f08d07c562fbd42745d5a6e3Benoit Goby ION_SYSTEM_HEAP_ID = 25,
43a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_PIL2_HEAP_ID = 26,
45938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_QSECOM_HEAP_ID = 27,
46938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_AUDIO_HEAP_ID = 28,
475491e9f18dd25f05f08d07c562fbd42745d5a6e3Benoit Goby ION_MM_FIRMWARE_HEAP_ID = 29,
48a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby ION_HEAP_ID_RESERVED = 31
50938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby};
51938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_IOMMU_HEAP_ID ION_SYSTEM_HEAP_ID
525491e9f18dd25f05f08d07c562fbd42745d5a6e3Benoit Goby#define ION_HEAP_TYPE_IOMMU ION_HEAP_TYPE_SYSTEM
53a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Gobyenum ion_fixed_position {
55938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby NOT_FIXED,
56938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby FIXED_LOW,
575491e9f18dd25f05f08d07c562fbd42745d5a6e3Benoit Goby FIXED_MIDDLE,
58a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby FIXED_HIGH,
60938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby};
61938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Gobyenum cp_mem_usage {
625491e9f18dd25f05f08d07c562fbd42745d5a6e3Benoit Goby VIDEO_BITSTREAM = 0x1,
63a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby VIDEO_PIXEL = 0x2,
65938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby VIDEO_NONPIXEL = 0x3,
66938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby MAX_USAGE = 0x4,
675491e9f18dd25f05f08d07c562fbd42745d5a6e3Benoit Goby UNKNOWN = 0x7FFFFFFF,
68a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69546f66cb53e4116a93f634bca14b6b8d8f83ab8fBenoit Goby};
70938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_HEAP_TYPE_DMA_MASK (1 << ION_HEAP_TYPE_DMA)
71938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_FLAG_SECURE (1 << ION_HEAP_ID_RESERVED)
72938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_FLAG_FORCE_CONTIGUOUS (1 << 30)
73a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_FLAG_POOL_FORCE_ALLOC (1 << 16)
75938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_SECURE ION_FLAG_SECURE
76938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_FORCE_CONTIGUOUS ION_FLAG_FORCE_CONTIGUOUS
77938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_HEAP(bit) (1 << (bit))
78a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_ADSP_HEAP_NAME "adsp"
80938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_SYSTEM_HEAP_NAME "system"
81938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_VMALLOC_HEAP_NAME ION_SYSTEM_HEAP_NAME
82938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_KMALLOC_HEAP_NAME "kmalloc"
83a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_AUDIO_HEAP_NAME "audio"
85938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_SF_HEAP_NAME "sf"
86938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_MM_HEAP_NAME "mm"
87938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_CAMERA_HEAP_NAME "camera_preview"
88a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_IOMMU_HEAP_NAME "iommu"
90938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_MFC_HEAP_NAME "mfc"
91938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_WB_HEAP_NAME "wb"
92938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_MM_FIRMWARE_HEAP_NAME "mm_fw"
93a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_PIL1_HEAP_NAME "pil_1"
95938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_PIL2_HEAP_NAME "pil_2"
96938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_QSECOM_HEAP_NAME "qsecom"
97938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_SET_CACHED(__cache) (__cache | ION_FLAG_CACHED)
98a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_SET_UNCACHED(__cache) (__cache & ~ION_FLAG_CACHED)
100938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_IS_CACHED(__flags) ((__flags) & ION_FLAG_CACHED)
1015491e9f18dd25f05f08d07c562fbd42745d5a6e3Benoit Gobystruct ion_flush_data {
102a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson ion_user_handle_t handle;
103a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby int fd;
105938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby void *vaddr;
106938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby unsigned int offset;
107938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby unsigned int length;
108a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby};
110938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Gobystruct ion_prefetch_data {
111938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby int heap_id;
112938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby unsigned long len;
113a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114d502d83ad97bac4ae127d2dd3290390f3c2104f1Simon Wilson};
115938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_IOC_MSM_MAGIC 'M'
116938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_IOC_CLEAN_CACHES _IOWR(ION_IOC_MSM_MAGIC, 0,   struct ion_flush_data)
117938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_IOC_INV_CACHES _IOWR(ION_IOC_MSM_MAGIC, 1,   struct ion_flush_data)
118a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_IOC_CLEAN_INV_CACHES _IOWR(ION_IOC_MSM_MAGIC, 2,   struct ion_flush_data)
120938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_IOC_PREFETCH _IOWR(ION_IOC_MSM_MAGIC, 3,   struct ion_prefetch_data)
121938b06feb4a557f44bd6a0a6a9e7fde786f3bc72Benoit Goby#define ION_IOC_DRAIN _IOWR(ION_IOC_MSM_MAGIC, 4,   struct ion_prefetch_data)
122555d7dbb058eecf2cfe611dc95089e81efb1e6c5Erik Gilling#endif
123a1582f49b9f19a98dc22559814b7595c9a8e4488Simon Wilson/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124