Skip to content

Commit

Permalink
xtest: copy dma-heap.h from Linux kernel v6.9
Browse files Browse the repository at this point in the history
Copy the needed dma-heap.h from Linux kernel v6.9. This is a stable ABI
so it doesn't have to be synced with each new kernel.

dma-heap.h can be removed when the cross toolchains provide the file.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
  • Loading branch information
jenswi-linaro committed Aug 29, 2024
1 parent c7e0b13 commit a5a5383
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 0 deletions.
1 change: 1 addition & 0 deletions Android.mk
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ LOCAL_SRC_FILES := $(patsubst %,host/xtest/%,$(srcs))

LOCAL_C_INCLUDES += $(LOCAL_PATH)/host/xtest \
$(LOCAL_PATH)/host/xtest/adbg/include \
$(LOCAL_PATH)/host/xtest/include/uapi \
$(LOCAL_PATH)/ta/include \
$(LOCAL_PATH)/ta/supp_plugin/include \
$(LOCAL_PATH)/ta/create_fail_test/include \
Expand Down
1 change: 1 addition & 0 deletions host/xtest/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ target_include_directories(${PROJECT_NAME}
PRIVATE .
PRIVATE ../supp_plugin/include
PRIVATE adbg/include
PRIVATE include/uapi
PRIVATE ${OPTEE_TEST_SDK}/host_include
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
${GP_INCLUDES}
Expand Down
1 change: 1 addition & 0 deletions host/xtest/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ endif

CFLAGS += -I./
CFLAGS += -I./adbg/include
CFLAGS += -I./include/uapi
CFLAGS += -I../supp_plugin/include
CFLAGS += -I$(out-dir)/xtest

Expand Down
53 changes: 53 additions & 0 deletions host/xtest/include/uapi/linux/dma-heap.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* DMABUF Heaps Userspace API
*
* Copyright (C) 2011 Google, Inc.
* Copyright (C) 2019 Linaro Ltd.
*/
#ifndef _UAPI_LINUX_DMABUF_POOL_H
#define _UAPI_LINUX_DMABUF_POOL_H

#include <linux/ioctl.h>
#include <linux/types.h>

/**
* DOC: DMABUF Heaps Userspace API
*/

/* Valid FD_FLAGS are O_CLOEXEC, O_RDONLY, O_WRONLY, O_RDWR */
#define DMA_HEAP_VALID_FD_FLAGS (O_CLOEXEC | O_ACCMODE)

/* Currently no heap flags */
#define DMA_HEAP_VALID_HEAP_FLAGS (0)

/**
* struct dma_heap_allocation_data - metadata passed from userspace for
* allocations
* @len: size of the allocation
* @fd: will be populated with a fd which provides the
* handle to the allocated dma-buf
* @fd_flags: file descriptor flags used when allocating
* @heap_flags: flags passed to heap
*
* Provided by userspace as an argument to the ioctl
*/
struct dma_heap_allocation_data {
__u64 len;
__u32 fd;
__u32 fd_flags;
__u64 heap_flags;
};

#define DMA_HEAP_IOC_MAGIC 'H'

/**
* DOC: DMA_HEAP_IOCTL_ALLOC - allocate memory from pool
*
* Takes a dma_heap_allocation_data struct and returns it with the fd field
* populated with the dmabuf handle of the allocation.
*/
#define DMA_HEAP_IOCTL_ALLOC _IOWR(DMA_HEAP_IOC_MAGIC, 0x0,\
struct dma_heap_allocation_data)

#endif /* _UAPI_LINUX_DMABUF_POOL_H */

0 comments on commit a5a5383

Please sign in to comment.