17777dab0Sopenharmony_ci/*
27777dab0Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
37777dab0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
47777dab0Sopenharmony_ci * you may not use this file except in compliance with the License.
57777dab0Sopenharmony_ci * You may obtain a copy of the License at
67777dab0Sopenharmony_ci *
77777dab0Sopenharmony_ci *    http://www.apache.org/licenses/LICENSE-2.0
87777dab0Sopenharmony_ci *
97777dab0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
107777dab0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
117777dab0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127777dab0Sopenharmony_ci * See the License for the specific language governing permissions and
137777dab0Sopenharmony_ci * limitations under the License.
147777dab0Sopenharmony_ci */
157777dab0Sopenharmony_ci#ifndef TEE_DRV_CLIENT_H
167777dab0Sopenharmony_ci#define TEE_DRV_CLIENT_H
177777dab0Sopenharmony_ci
187777dab0Sopenharmony_ci/**
197777dab0Sopenharmony_ci * @addtogroup TeeTrusted
207777dab0Sopenharmony_ci * @{
217777dab0Sopenharmony_ci *
227777dab0Sopenharmony_ci * @brief TEE(Trusted Excution Environment) API.
237777dab0Sopenharmony_ci * Provides security capability APIs such as trusted storage, encryption and decryption,
247777dab0Sopenharmony_ci * and trusted time for trusted application development.
257777dab0Sopenharmony_ci *
267777dab0Sopenharmony_ci * @since 12
277777dab0Sopenharmony_ci */
287777dab0Sopenharmony_ci
297777dab0Sopenharmony_ci/**
307777dab0Sopenharmony_ci * @file tee_drv_client.h
317777dab0Sopenharmony_ci *
327777dab0Sopenharmony_ci * @brief Declare tee driver client API.
337777dab0Sopenharmony_ci *
347777dab0Sopenharmony_ci * @library NA
357777dab0Sopenharmony_ci * @kit TEEKit
367777dab0Sopenharmony_ci * @syscap SystemCapability.Tee.TeeClient
377777dab0Sopenharmony_ci * @since 12
387777dab0Sopenharmony_ci * @version 1.0
397777dab0Sopenharmony_ci */
407777dab0Sopenharmony_ci
417777dab0Sopenharmony_ci#include <stdint.h>
427777dab0Sopenharmony_ci
437777dab0Sopenharmony_ci#ifdef __cplusplus
447777dab0Sopenharmony_ciextern "C" {
457777dab0Sopenharmony_ci#endif
467777dab0Sopenharmony_ci
477777dab0Sopenharmony_ci/**
487777dab0Sopenharmony_ci * @brief Open the specified driver in the TEE.
497777dab0Sopenharmony_ci *
507777dab0Sopenharmony_ci * @param drv_name [IN] The driver name.
517777dab0Sopenharmony_ci * @param param [IN] The parameter information.
527777dab0Sopenharmony_ci * @param param_len [IN] The length of the parameter.
537777dab0Sopenharmony_ci *
547777dab0Sopenharmony_ci * @return Returns greater than 0, which means the fd of the corresponding driver.
557777dab0Sopenharmony_ci *         Returns less than or equal to 0, which means falied to open the driver.
567777dab0Sopenharmony_ci *
577777dab0Sopenharmony_ci * @since 12
587777dab0Sopenharmony_ci * @version 1.0
597777dab0Sopenharmony_ci */
607777dab0Sopenharmony_ciint64_t tee_drv_open(const char *drv_name, const void *param, uint32_t param_len);
617777dab0Sopenharmony_ci
627777dab0Sopenharmony_ci/**
637777dab0Sopenharmony_ci * @brief Cancels an operation.
647777dab0Sopenharmony_ci *
657777dab0Sopenharmony_ci * @param fd [IN] The file descriptor of the driver.
667777dab0Sopenharmony_ci * @param cmd_id [IN] The command id.
677777dab0Sopenharmony_ci * @param param [IN] The parameter information.
687777dab0Sopenharmony_ci * @param param_len [IN] The length of the parameter.
697777dab0Sopenharmony_ci *
707777dab0Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful.
717777dab0Sopenharmony_ci *         Returns <b>-1</b> if the operation is failed.
727777dab0Sopenharmony_ci *
737777dab0Sopenharmony_ci * @since 12
747777dab0Sopenharmony_ci * @version 1.0
757777dab0Sopenharmony_ci */
767777dab0Sopenharmony_ciint64_t tee_drv_ioctl(int64_t fd, uint32_t cmd_id, const void *param, uint32_t param_len);
777777dab0Sopenharmony_ci
787777dab0Sopenharmony_ci/**
797777dab0Sopenharmony_ci * @brief Open the specified driver in the TEE.
807777dab0Sopenharmony_ci *
817777dab0Sopenharmony_ci * @param fd [IN] The file descriptor of the driver.
827777dab0Sopenharmony_ci *
837777dab0Sopenharmony_ci * @return Returns <b>0</b> if the operation is successful.
847777dab0Sopenharmony_ci *         Returns <b>-1</b> if the operation is failed.
857777dab0Sopenharmony_ci *
867777dab0Sopenharmony_ci * @since 12
877777dab0Sopenharmony_ci * @version 1.0
887777dab0Sopenharmony_ci */
897777dab0Sopenharmony_ciint64_t tee_drv_close(int64_t fd);
907777dab0Sopenharmony_ci
917777dab0Sopenharmony_ci#ifdef __cplusplus
927777dab0Sopenharmony_ci}
937777dab0Sopenharmony_ci#endif
947777dab0Sopenharmony_ci/** @} */
957777dab0Sopenharmony_ci#endif
967777dab0Sopenharmony_ci
97