/**
 * @file tees_mem.h
 * @brief Multibuild's miscellaneous SWd system functions and interfaces
 * declaration
 * @author Iaroslav Makarchuk (i.makarchuk@samsung.com)
 * @date Created Oct 3, 2016
 * @par In Samsung Ukraine R&D Center (SURC) under a contract between
 * @par LLC "Samsung Electronics Ukraine Company" (Kiev, Ukraine) and
 * @par "Samsung Elecrtronics Co", Ltd (Seoul, Republic of Korea)
 * @par Copyright: (c) Samsung Electronics Co, Ltd 2015. All rights reserved.
 *
 * This software is proprietary of Samsung Electronics.
 * No part of this software, either material or conceptual may be copied
 * or distributed, transmitted, transcribed, stored in a retrieval system
 * or translated into any human or computer language in any form by any means,
 * electronic, mechanical, manual or otherwise, or disclosed to third parties
 * without the express written permission of Samsung Electronics.
 *
 */
#ifndef TEE_SYS_H_
#define TEE_SYS_H_

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief An interface for IPC handler for driver
 *
 * @note This interface must be implemented in secure driver. It will be called
 * when the command comes from TA to driver. Currently this functionality is
 * supported only for t-base
 *
 * @param[in]      cmd          Command ID
 * @param[in]      in,in_size   Input command data
 * @param[out]     out,out_size Output command data
 *
 * @retval TEE_SUCCESS         Command was handled properly
 * @retval TEE_ERROR_*         An error occured during command processing
 */
TEE_Result TEES_HandleDriverCommand(uint32_t cmd, const void *in, uint32_t in_size,
                                    void *out, uint32_t *out_size);

#ifdef __cplusplus
}
#endif

#endif /* TEE_SYS_H_ */
