event_flag.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /**
  2. * @file event_flag.h
  3. * Furi Event Flag
  4. */
  5. #pragma once
  6. #include "base.h"
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. typedef void FuriEventFlag;
  11. /** Allocate FuriEventFlag
  12. *
  13. * @return pointer to FuriEventFlag
  14. */
  15. FuriEventFlag* furi_event_flag_alloc();
  16. /** Deallocate FuriEventFlag
  17. *
  18. * @param instance pointer to FuriEventFlag
  19. */
  20. void furi_event_flag_free(FuriEventFlag* instance);
  21. /** Set flags
  22. *
  23. * @param instance pointer to FuriEventFlag
  24. * @param[in] flags The flags
  25. *
  26. * @return Resulting flags or error (FuriStatus)
  27. */
  28. uint32_t furi_event_flag_set(FuriEventFlag* instance, uint32_t flags);
  29. /** Clear flags
  30. *
  31. * @param instance pointer to FuriEventFlag
  32. * @param[in] flags The flags
  33. *
  34. * @return Resulting flags or error (FuriStatus)
  35. */
  36. uint32_t furi_event_flag_clear(FuriEventFlag* instance, uint32_t flags);
  37. /** Get flags
  38. *
  39. * @param instance pointer to FuriEventFlag
  40. *
  41. * @return Resulting flags
  42. */
  43. uint32_t furi_event_flag_get(FuriEventFlag* instance);
  44. /** Wait flags
  45. *
  46. * @param instance pointer to FuriEventFlag
  47. * @param[in] flags The flags
  48. * @param[in] options The option flags
  49. * @param[in] timeout The timeout
  50. *
  51. * @return Resulting flags or error (FuriStatus)
  52. */
  53. uint32_t furi_event_flag_wait(
  54. FuriEventFlag* instance,
  55. uint32_t flags,
  56. uint32_t options,
  57. uint32_t timeout);
  58. #ifdef __cplusplus
  59. }
  60. #endif