kernel-brax3-ubuntu-touch/drivers/tee/teei/500/tz_driver/include/ut_drv.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

90 lines
1.6 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2015-2019, MICROTRUST Incorporated
* All Rights Reserved.
*
*/
#ifndef _UT_DRV_H_
#define _UT_DRV_H_
#include <tee_client_api.h>
struct ut_drv_entry {
struct TEEC_UUID uuid;
struct TEEC_Session session;
uint32_t driver_id;
struct list_head list;
};
struct param_get_drv_id {
unsigned long dummy;
};
struct param_reg_dci_buf {
uint64_t phy_addr;
uint32_t buf_size;
};
struct param_notify_from_ree {
unsigned long data;
uint32_t cmd;
};
struct param_drv_open {
unsigned long data;
};
struct param_drv_ioctl {
unsigned long data;
uint32_t cmd;
};
struct param_drv_close {
unsigned long dummy;
};
struct ut_drv_param {
uint32_t cmd_id;
union {
struct param_get_drv_id get_drv_id;
struct param_reg_dci_buf reg_dci_buf;
struct param_notify_from_ree notify_from_ree;
struct param_drv_open drv_open;
struct param_drv_ioctl drv_ioctl;
struct param_drv_close drv_close;
} u;
};
enum {
UT_DRV_GET_DRIVER_ID,
UT_DRV_REGISTER_DCI_BUFFER,
UT_DRV_FREE_DCI_BUFFER,
UT_DRV_NOTIFY_FROM_REE,
UT_DRV_OPEN,
UT_DRV_IOCTL,
UT_DRV_CLOSE,
};
static inline void prepare_params(struct TEEC_Operation *op,
void *data, size_t size)
{
op->params[0].tmpref.buffer = data;
op->params[0].tmpref.size = size;
op->params[1].value.a = 0;
op->paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT,
TEEC_VALUE_OUTPUT,
TEEC_NONE,
TEEC_NONE);
}
static inline uint32_t get_result(struct TEEC_Operation *op)
{
return op->params[1].value.a;
}
struct ut_drv_entry *find_ut_drv_entry_by_uuid(struct TEEC_UUID *uuid);
struct ut_drv_entry *find_ut_drv_entry_by_driver_id(uint32_t driver_id);
#endif