#ifndef __TLAPIDRTIMA_H__
#define __TLAPIDRTIMA_H__

#include "TlApi/TlApiCommon.h"
#include "TlApi/TlApiError.h"
#include "sc_api.h"
#include "TlApiDrTimaCommon.h"
#include "dashboard.h"

/**
 * Tima Driver Generate Digest
 *
 * @digestData: pointer for data, data length, and digest buffer address
 *
 * @return : tlApiResult_t
 *	@TLAPI_OK : physical memory is accessed digest is generated and passed to TL
 */
_TLAPI_EXTERN_C tlApiResult_t tlApiTimaDriverGenerateDigest(
	struct digestData_t *digestData
);

/**
 * Tima Driver Physical Memory To TL Copy
 *
 * phys2TLData: pointer for physical and TL addresses and data length
 *
 * @return : tlApiResult_t
 *	@TLAPI_OK : physical memory is accessed digest is generated and passed to TL
 */
_TLAPI_EXTERN_C tlApiResult_t tlApiTimaDriverPhysMemAccess(
	struct physMemAccessData_t *physMemAccessData
);

/**
 * Tima Driver Log Debug Message
 * ANY CHANGES TO NAME OF THIS FUNCTION SHOULD ALSO CHANGE drLog.h
 *
 * @log_msg: The actual message to log
 *
 * @return : tlApiResult_t
 *	@TLAPI_OK : All ok
 */
_TLAPI_EXTERN_C tlApiResult_t tlApiTimaDriverLogDbgMsg(
	char *log_msg
);

/**
 * Tima Driver Log Secure Message
 * ANY CHANGES TO NAME OF THIS FUNCTION SHOULD ALSO CHANGE drLog.h
 *
 * @type: The actual dashboard message type to log
 *
 * @return : tlApiResult_t
 *	@TLAPI_OK : All ok
 */
_TLAPI_EXTERN_C tlApiResult_t tlApiTimaDriverLogSecMsg(
	sec_entry_t type
);

_TLAPI_EXTERN_C tlApiResult_t tlApiTimaDriverMST(
	char *input
);

_TLAPI_EXTERN_C tlApiResult_t tlApiTimaDriverSecureBootStatus(
    void
);

/**
 * Tima Driver SCrypto API
 *
 * @pSCryptoInput:
 *
 * @return : tlApiResult_t
 *	@TLAPI_OK :
 */
_TLAPI_EXTERN_C tlApiResult_t tlApiTimaDriverSCrypto(
	struct scrypto_t *pSCrypto
);

/**
 * Tima Driver whitelist update API
 *
 * @pSCryptoInput:
 *
 * @return : tlApiResult_t
 *	@TLAPI_OK :
 */
_TLAPI_EXTERN_C tlApiResult_t tlApiTimaDriverWhitelist(
	struct update_whitelist_t *wl
);

/**
 * Tima Driver hdm policy API
 *
 * @policy:
 *
 * @return : tlApiResult_t
 *	@TLAPI_OK :
 */
_TLAPI_EXTERN_C tlApiResult_t tlApiTimaDriverSetHdmPolicy(
	struct set_hdm_policy_t * policy
);
#endif // __TLAPIDRTIMA_H__

/** @} */
