/*
 * @file hv_vos_Time.h
 * @brief Header file of time.
 *
 * @verbatim
 * ==============================================================================
 *                        ##### How to use #####
 * ==============================================================================
 * (+) Use ()
 *
 * @endverbatim
 * @author HiView SoC Software Team
 * @version 1.0.0
 * @date 2023-03-01
 */



#ifndef _HV_VOS_TIME_H
#define _HV_VOS_TIME_H

#include "hv_vos_Types.h"

VOS_EXTERN_C_BEGIN

/** @defgroup VOS_TIME VOS_TIME
 *  VOS time related functions
 *  @{
 */ 

/** @brief Get current tick count
 *  @return tick count
*/
UINT64 Hv_Vos_GetTick();

/** @brief sleep for a while
 *  @param milliseconds sleeping milliseconds
 */
void Hv_Vos_MSleep(UINT32 uiMilliseconds);

void Hv_Vos_MSleepUntil(UINT32 uiMilliseconds);

UINT64 Hv_Vos_GetTick(void);

UINT64 Hv_Vos_MsToTick(UINT32 uiMilliseconds);

/* Init VOS time */
void Hv_Vos_InitTime(void);

/* De-init VOS time */
void Hv_Vos_CleanupTime(void);

/* Delay us to hold the CPU; us should not larger than 1000! */
void Hv_Vos_Delayus(UINT32 us);


/** @} */

VOS_EXTERN_C_END

#endif



