linux/include/uapi/linux/dma-heap.h
<<
>>
Prefs
   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 */
  54