8#ifndef _UAPI_LINUX_ION_H
9#define _UAPI_LINUX_ION_H
11#include <linux/ioctl.h>
12#include <linux/types.h>
26#define ION_NUM_HEAP_IDS (sizeof(unsigned int) * 8)
37#define ION_FLAG_CACHED 1
60#define MAX_HEAP_NAME 32
85#define ION_IOC_MAGIC 'I'
93#define ION_IOC_ALLOC _IOWR(ION_IOC_MAGIC, 0, struct ion_allocation_data)
101#define ION_IOC_HEAP_QUERY _IOWR(ION_IOC_MAGIC, 8, struct ion_heap_query)
ion_heap_type
enum ion_heap_types - list of all possible types of heaps
@ ION_HEAP_TYPE_SYSTEM_CONTIG
memory allocated via kmalloc
@ ION_HEAP_TYPE_CARVEOUT
memory allocated from a prereserved carveout heap, allocations are physically contiguous
@ ION_HEAP_TYPE_DMA
memory allocated via DMA API
@ ION_HEAP_TYPE_CUSTOM
must be last so device specific heaps always are at the end of this enum
@ ION_HEAP_TYPE_SYSTEM
memory allocated via vmalloc
__u32 heap_id_mask
mask of heap ids to allocate from
__u32 fd
file descriptor for this allocation
__u32 flags
flags passed to heap
__u64 len
size of the allocation
struct ion_heap_data - data about a heap
__u32 reserved2
reserved field
__u32 reserved1
reserved field
__u32 reserved0
reserved field
char name[MAX_HEAP_NAME]
first 32 characters of the heap name
__u32 heap_id
heap id for the heap
struct ion_heap_query - collection of data about all heaps
__u64 heaps
buffer to be populated
__u32 reserved0
align to 64bits
__u32 reserved1
reserved field
__u32 cnt
Total number of heaps to be copied.
__u32 reserved2
reserved field