123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /*
- * @file hv_vos_Task.h
- * @brief Header file of task.
- *
- * @verbatim
- * ==============================================================================
- * ##### How to use #####
- * ==============================================================================
- * (+) Use ()
- *
- * @endverbatim
- * @author HiView SoC Software Team
- * @version 1.0.0
- * @date 2023-03-01
- */
- #ifndef _HV_VOS_TASK_H
- #define _HV_VOS_TASK_H
- VOS_EXTERN_C_BEGIN
- /** @defgroup VOS_TASK VOS_TASK
- * VOS task functions
- * @{
- */
- /** @brief task forward declaration */
- typedef struct _HV_VOS_TASK_S HV_VOS_TASK_S;
- /** task entry function type */
- typedef void (*HV_VOS_TASK_ENTRY_FN)(void *arg);
- typedef struct _HV_VOS_TASK_INIT_PARAMS{
- HV_VOS_TASK_ENTRY_FN entry;
- const CHAR8* name;
- void *arg;
- UINT32 stackSize;
- UINT32 priority;
- } Hv_Vos_TASK_INIT_PARAMS;
- /** @brief Create task
- * @param param pointer to task init parameters structure
- * @return task pointer, return NULL if create fail
- */
- HV_VOS_TASK_S *Hv_Vos_TaskInit(Hv_Vos_TASK_INIT_PARAMS *param);
- /** @brief Destroy task
- *
- * @param self task pointer, NULL for current task
- * @return result
- */
- void Hv_Vos_TaskCleanup(HV_VOS_TASK_S *self);
- /** @brief Start OS scheduler
- */
- void Hv_Vos_TaskStart();
- /** @brief yield current task
- */
- void Hv_Vos_TaskYield();
- /** get current task id */
- UINT32 Hv_Vos_TASK_CurrentTaskId();
- UINT32 Hv_Vos_TASK_NotifyWait(UINT32* puiValue);
- /** @} */ //end of group VOS_TASK
- BOOL Hv_Vos_TaskNotifyFromISR(HV_VOS_TASK_S *self);
- VOID Hv_Vos_TaskEnterCritical();
- VOID Hv_Vos_TaskExitCritical();
- VOS_EXTERN_C_END
- #endif
|