swtimer.h 812 B

123456789101112131415161718192021222324252627282930
  1. /*
  2. * swtimer.h
  3. *
  4. * Created on: Aug 4, 2017
  5. * Author: anonymous
  6. */
  7. #ifndef APP_INCLUDE_PM_SWTIMER_H_
  8. #define APP_INCLUDE_PM_SWTIMER_H_
  9. void swtmr_cb_register(void* timer_cb_ptr, uint8 suspend_policy);
  10. #define SWTIMER_RESUME 0 //save remaining time
  11. #define SWTIMER_RESTART 1 //use timer_period as remaining time
  12. #define SWTIMER_IMMEDIATE 2 //fire timer immediately after resume
  13. #define SWTIMER_DROP 3 //disarm timer, do not resume
  14. #if defined(TIMER_SUSPEND_ENABLE)
  15. #define SWTIMER_REG_CB(cb_ptr, suspend_policy) do{ \
  16. static bool cb_ptr##_registered_flag;\
  17. if(!cb_ptr##_registered_flag){ \
  18. cb_ptr##_registered_flag = true; \
  19. swtmr_cb_register(cb_ptr, suspend_policy);\
  20. } \
  21. }while(0);
  22. #else
  23. #define SWTIMER_REG_CB(...)
  24. #endif
  25. #endif /* APP_INCLUDE_PM_SWTIMER_H_ */