import OT_8063_20170412 mali driver
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / gpu / mt8127 / mali / mali / linux / mali_memory_manager.h
CommitLineData
db9a41fa
S
1/*\r
2 * This confidential and proprietary software may be used only as\r
3 * authorised by a licensing agreement from ARM Limited\r
4 * (C) COPYRIGHT 2013-2015 ARM Limited\r
5 * ALL RIGHTS RESERVED\r
6 * The entire notice above must be reproduced on all authorised\r
7 * copies and copies may only be made to the extent permitted\r
8 * by a licensing agreement from ARM Limited.\r
9 */\r
10\r
11#ifndef __MALI_MEMORY_MANAGER_H__\r
12#define __MALI_MEMORY_MANAGER_H__\r
13\r
14#include "mali_osk.h"\r
15#include <linux/list.h>\r
16#include <linux/mm.h>\r
17#include <linux/rbtree.h>\r
18#include <linux/spinlock.h>\r
19#include <linux/types.h>\r
20#include "mali_memory_types.h"\r
21#include "mali_memory_os_alloc.h"\r
22#include "mali_uk_types.h"\r
23\r
24struct mali_allocation_manager {\r
25 rwlock_t vm_lock;\r
26 struct rb_root allocation_mgr_rb;\r
27 struct list_head head;\r
28 struct mutex list_mutex;\r
29};\r
30\r
31extern struct idr mali_backend_idr;\r
32extern struct mutex mali_idr_mutex;\r
33\r
34int mali_memory_manager_init(struct mali_allocation_manager *mgr);\r
35void mali_memory_manager_uninit(struct mali_allocation_manager *mgr);\r
36\r
37void mali_mem_allocation_struct_destory(mali_mem_allocation *alloc);\r
38\r
39mali_mem_backend *mali_mem_backend_struct_search(struct mali_allocation_manager *mgr, u32 mali_address);\r
40_mali_osk_errcode_t _mali_ukk_mem_allocate(_mali_uk_alloc_mem_s *args);\r
41_mali_osk_errcode_t _mali_ukk_mem_free(_mali_uk_free_mem_s *args);\r
42_mali_osk_errcode_t _mali_ukk_mem_bind(_mali_uk_bind_mem_s *args);\r
43_mali_osk_errcode_t _mali_ukk_mem_unbind(_mali_uk_unbind_mem_s *args);\r
44_mali_osk_errcode_t _mali_ukk_mem_cow(_mali_uk_cow_mem_s *args);\r
45_mali_osk_errcode_t _mali_ukk_mem_cow_modify_range(_mali_uk_cow_modify_range_s *args);\r
46_mali_osk_errcode_t _mali_ukk_mem_usage_get(_mali_uk_profiling_memory_usage_get_s *args);\r
47\r
48#endif\r
49\r