/* * Copyright (C) 2010-2014, 2016-2017 ARM Limited. All rights reserved. * * This program is free software and is provided to you under the terms of the GNU General Public License version 2 * as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence. * * A copy of the licence is included with the program, and can also be obtained from Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __UMP_KERNEL_TYPES_H__ #define __UMP_KERNEL_TYPES_H__ #include "ump_kernel_interface.h" #include "mali_osk.h" #include #ifdef CONFIG_DMA_SHARED_BUFFER #include #endif typedef enum { UMP_USED_BY_CPU = 0, UMP_USED_BY_MALI = 1, UMP_USED_BY_UNKNOWN_DEVICE = 100, } ump_hw_usage; typedef enum { UMP_NOT_LOCKED = 0, UMP_READ = 1, UMP_READ_WRITE = 3, } ump_lock_usage; /* * This struct is what is "behind" a ump_dd_handle */ typedef struct ump_dd_mem { struct rb_node node; ump_secure_id secure_id; _mali_osk_atomic_t ref_count; unsigned long size_bytes; unsigned long nr_blocks; ump_dd_physical_block *block_array; void (*release_func)(void *ctx, struct ump_dd_mem *descriptor); void *ctx; void *backend_info; int is_cached; ump_hw_usage hw_device; ump_lock_usage lock_usage; #ifdef CONFIG_DMA_SHARED_BUFFER struct dma_buf_attachment *import_attach; struct sg_table *sgt; #endif } ump_dd_mem; #endif /* __UMP_KERNEL_TYPES_H__ */