hal_sem.h 649 B

1234567891011121314151617181920212223242526272829303132
  1. #ifndef SUNXI_HAL_SEM_H
  2. #define SUNXI_HAL_SEM_H
  3. #ifdef __cplusplus
  4. extern "C"
  5. {
  6. #endif
  7. #include <stddef.h>
  8. #include <stdint.h>
  9. #ifdef CONFIG_KERNEL_FREERTOS
  10. #include <FreeRTOS.h>
  11. #include <semphr.h>
  12. typedef SemaphoreHandle_t hal_sem_t;
  13. #else
  14. #include <rtthread.h>
  15. typedef rt_sem_t hal_sem_t;
  16. #endif
  17. hal_sem_t hal_sem_create(unsigned int cnt);
  18. int hal_sem_delete(hal_sem_t sem);
  19. int hal_sem_getvalue(hal_sem_t sem, int *val);
  20. int hal_sem_post(hal_sem_t sem);
  21. int hal_sem_timedwait(hal_sem_t sem, int ticks);
  22. int hal_sem_trywait(hal_sem_t sem);
  23. int hal_sem_wait(hal_sem_t sem);
  24. int hal_sem_clear(hal_sem_t sem);
  25. #ifdef __cplusplus
  26. }
  27. #endif
  28. #endif