/**************************************************************************** Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED. This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT be copied by any method or incorporated into another program without the express written consent of Aerospace C.Power. This Information or any portion thereof remains the property of Aerospace C.Power. The Information contained herein is believed to be accurate and Aerospace C.Power assumes no responsibility or liability for its use in any way and conveys no license or title under any patent or copyright and makes no representation or warranty that this Information is free from patent or copyright infringement. ****************************************************************************/ #ifndef OS_SHIM_EVENT_API_H #define OS_SHIM_EVENT_API_H /* os shim includes */ #include "os_types_api.h" /* common includes */ #include "iot_module_api.h" #ifdef __cplusplus extern "C" { #endif /** \defgroup OS_APIs PLC OS APIs * @brief WQ30x1 PLC OS APIs * */ /** @addtogroup OS_APIs * @{ */ /** \defgroup OS_EVENT_APIs PLC OS EVENT APIs * @brief PLC OS EVENT * * OS EVENT API for customer application. * */ /** @addtogroup OS_EVENT_APIs * @{ */ typedef void* os_event_h; #define MAX_TIME 0xffffffffUL /** * @brief os_create_event() - create a event. * @param module_id: the module id that creates the event. * @param init_state_set: initial state of the new created event. * true means the event is set by default. * * @return 0 -- for failure case * @return otherwise -- event id */ os_event_h os_create_event(module_id_t module_id, bool_t init_state_set); /** * @brief os_wait_event() - wait to take a event. This method should NOT * be called in ISR. * * @param event_id: id of the event being waiting to be taken. * @param timeout: time to wait in millisecond for the event * to be available. when timeout is set to * MAX_TIME, this method return only if * the event become avaliable. * * @return TRUE -- Take the event successfully * @return FALSE -- Failed to take the event within ms milliseconds */ bool_t os_wait_event(os_event_h event_id, uint32_t timeout); /** * @brief os_set_event() - give a event. This method should NOT be called in ISR. * @param event_id: id of the event to be given. * * @return TRUE - Give the event successfully * @return FALSE - Failed to take the event */ bool_t os_set_event(os_event_h event_id); /** * @brief os_delete_event() - delete a event. * * @param event_id: id of the event to be deleted. */ void os_delete_event(os_event_h event_id); /** * @} */ /** * @} */ #ifdef __cplusplus } #endif #endif /* OS_SHIM_EVENT_API_H */