kernel-brax3-ubuntu-touch/drivers/misc/mediatek/trusted_mem/public/trusted_mem_api.h
erascape f319b992b1 kernel-5.15: Initial import brax3 UT kernel
* halium configs enabled

Signed-off-by: erascape <erascape@proton.me>
2025-09-23 15:17:10 +00:00

63 lines
2.2 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2019 MediaTek Inc.
*/
#ifndef TRUSTED_MEM_API_H
#define TRUSTED_MEM_API_H
enum TRUSTED_MEM_REQ_TYPE {
TRUSTED_MEM_REQ_SVP_REGION = 0,
TRUSTED_MEM_REQ_PROT_REGION = 1,
TRUSTED_MEM_REQ_WFD_REGION = 2,
TRUSTED_MEM_REQ_HAPP = 3,
TRUSTED_MEM_REQ_HAPP_EXTRA = 4,
TRUSTED_MEM_REQ_SDSP = 5,
TRUSTED_MEM_REQ_SDSP_SHARED = 6,
TRUSTED_MEM_REQ_2D_FR = 7,
TRUSTED_MEM_REQ_TUI_REGION = 8,
TRUSTED_MEM_REQ_SVP_PAGE = 9,
TRUSTED_MEM_REQ_PROT_PAGE = 10,
TRUSTED_MEM_REQ_WFD_PAGE = 11,
TRUSTED_MEM_REQ_SAPU_DATA_SHM = 12,
TRUSTED_MEM_REQ_SAPU_ENGINE_SHM = 13,
TRUSTED_MEM_REQ_AP_MD_SHM = 14,
TRUSTED_MEM_REQ_AP_SCP_SHM = 15,
};
struct ssheap_buf_info {
struct sg_table *table;
unsigned long alignment;
struct list_head block_list;
unsigned long req_size;
unsigned long aligned_req_size;
unsigned long allocated_size;
unsigned long elems;
struct page *pmm_msg_page;
u8 mem_type;
u64 ffa_handle;
};
/**********************************************************/
/**** Trusted Memory Common APIs for ION kernel driver ****/
/**********************************************************/
#if IS_ENABLED(CONFIG_MTK_TRUSTED_MEMORY_SUBSYSTEM)
int trusted_mem_api_alloc(enum TRUSTED_MEM_REQ_TYPE mem_type, u32 alignment,
u32 *size, u32 *refcount, u64 *sec_handle,
uint8_t *owner, uint32_t id, struct ssheap_buf_info **buf_info);
int trusted_mem_api_alloc_zero(enum TRUSTED_MEM_REQ_TYPE mem_type,
u32 alignment, u32 size, u32 *refcount,
u64 *sec_handle, uint8_t *owner, uint32_t id);
int trusted_mem_api_unref(enum TRUSTED_MEM_REQ_TYPE mem_type, u64 sec_handle,
uint8_t *owner, uint32_t id, struct ssheap_buf_info *buf_info);
int trusted_mem_api_query_pa(enum TRUSTED_MEM_REQ_TYPE mem_type, u32 alignment,
u32 size, u32 *refcount, u32 *gz_handle,
u8 *owner, u32 id, u32 clean, uint64_t *phy_addr);
bool trusted_mem_api_get_region_info(enum TRUSTED_MEM_REQ_TYPE mem_type,
u64 *pa, u32 *size);
enum TRUSTED_MEM_REQ_TYPE trusted_mem_api_get_page_replace(
enum TRUSTED_MEM_REQ_TYPE mem_type);
int trusted_mem_ffa_query_pa(u64 *handle, uint64_t *phy_addr);
#endif
#endif /* end of TRUSTED_MEM_API_H */