| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /**
- * @file mutex.h
- * FuriMutex
- */
- #pragma once
- #include "base.h"
- #include "thread.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef enum {
- FuriMutexTypeNormal,
- FuriMutexTypeRecursive,
- } FuriMutexType;
- typedef void FuriMutex;
- /** Allocate FuriMutex
- *
- * @param[in] type The mutex type
- *
- * @return pointer to FuriMutex instance
- */
- FuriMutex* furi_mutex_alloc(FuriMutexType type);
- /** Free FuriMutex
- *
- * @param instance The pointer to FuriMutex instance
- */
- void furi_mutex_free(FuriMutex* instance);
- /** Acquire mutex
- *
- * @param instance The pointer to FuriMutex instance
- * @param[in] timeout The timeout
- *
- * @return The furi status.
- */
- FuriStatus furi_mutex_acquire(FuriMutex* instance, uint32_t timeout);
- /** Release mutex
- *
- * @param instance The pointer to FuriMutex instance
- *
- * @return The furi status.
- */
- FuriStatus furi_mutex_release(FuriMutex* instance);
- /** Get mutex owner thread id
- *
- * @param instance The pointer to FuriMutex instance
- *
- * @return The furi thread identifier.
- */
- FuriThreadId furi_mutex_get_owner(FuriMutex* instance);
- #ifdef __cplusplus
- }
- #endif
|