/*
|
* 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 <linux/rbtree.h>
|
#ifdef CONFIG_DMA_SHARED_BUFFER
|
#include <linux/dma-buf.h>
|
#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__ */
|