dma-heap.h (1409B)
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2/* 3 * DMABUF Heaps Userspace API 4 * 5 * Copyright (C) 2011 Google, Inc. 6 * Copyright (C) 2019 Linaro Ltd. 7 */ 8#ifndef _UAPI_LINUX_DMABUF_POOL_H 9#define _UAPI_LINUX_DMABUF_POOL_H 10 11#include <linux/ioctl.h> 12#include <linux/types.h> 13 14/** 15 * DOC: DMABUF Heaps Userspace API 16 */ 17 18/* Valid FD_FLAGS are O_CLOEXEC, O_RDONLY, O_WRONLY, O_RDWR */ 19#define DMA_HEAP_VALID_FD_FLAGS (O_CLOEXEC | O_ACCMODE) 20 21/* Currently no heap flags */ 22#define DMA_HEAP_VALID_HEAP_FLAGS (0) 23 24/** 25 * struct dma_heap_allocation_data - metadata passed from userspace for 26 * allocations 27 * @len: size of the allocation 28 * @fd: will be populated with a fd which provides the 29 * handle to the allocated dma-buf 30 * @fd_flags: file descriptor flags used when allocating 31 * @heap_flags: flags passed to heap 32 * 33 * Provided by userspace as an argument to the ioctl 34 */ 35struct dma_heap_allocation_data { 36 __u64 len; 37 __u32 fd; 38 __u32 fd_flags; 39 __u64 heap_flags; 40}; 41 42#define DMA_HEAP_IOC_MAGIC 'H' 43 44/** 45 * DOC: DMA_HEAP_IOCTL_ALLOC - allocate memory from pool 46 * 47 * Takes a dma_heap_allocation_data struct and returns it with the fd field 48 * populated with the dmabuf handle of the allocation. 49 */ 50#define DMA_HEAP_IOCTL_ALLOC _IOWR(DMA_HEAP_IOC_MAGIC, 0x0,\ 51 struct dma_heap_allocation_data) 52 53#endif /* _UAPI_LINUX_DMABUF_POOL_H */