| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /**
- * @file semaphore.h
- * FuriSemaphore
- */
- #pragma once
- #include "base.h"
- #include "thread.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef void FuriSemaphore;
- /** Allocate semaphore
- *
- * @param[in] max_count The maximum count
- * @param[in] initial_count The initial count
- *
- * @return pointer to FuriSemaphore instance
- */
- FuriSemaphore* furi_semaphore_alloc(uint32_t max_count, uint32_t initial_count);
- /** Free semaphore
- *
- * @param instance The pointer to FuriSemaphore instance
- */
- void furi_semaphore_free(FuriSemaphore* instance);
- /** Acquire semaphore
- *
- * @param instance The pointer to FuriSemaphore instance
- * @param[in] timeout The timeout
- *
- * @return The furi status.
- */
- FuriStatus furi_semaphore_acquire(FuriSemaphore* instance, uint32_t timeout);
- /** Release semaphore
- *
- * @param instance The pointer to FuriSemaphore instance
- *
- * @return The furi status.
- */
- FuriStatus furi_semaphore_release(FuriSemaphore* instance);
- /** Get semaphore count
- *
- * @param instance The pointer to FuriSemaphore instance
- *
- * @return Semaphore count
- */
- uint32_t furi_semaphore_get_count(FuriSemaphore* instance);
- #ifdef __cplusplus
- }
- #endif
|