e3c7201a20
* Furi: rename and move core * Furi: drop CMSIS_OS header and unused api, partially refactor and cleanup the rest * Furi: CMSIS_OS drop and refactoring. * Furi: refactoring, remove cmsis legacy * Furi: fix incorrect assert on queue deallocation, cleanup timer * Furi: improve delay api, get rid of floats * hal: dropped furi_hal_crc * Furi: move DWT based delay to cortex HAL * Furi: update core documentation Co-authored-by: hedger <hedger@nanode.su>
19 lines
537 B
C
19 lines
537 B
C
#pragma once
|
|
|
|
typedef FuriEventFlag* FuriApiLock;
|
|
|
|
#define API_LOCK_EVENT (1U << 0)
|
|
|
|
#define API_LOCK_INIT_LOCKED() furi_event_flag_alloc();
|
|
|
|
#define API_LOCK_WAIT_UNTIL_UNLOCK(_lock) \
|
|
furi_event_flag_wait(_lock, API_LOCK_EVENT, FuriFlagWaitAny, FuriWaitForever);
|
|
|
|
#define API_LOCK_FREE(_lock) furi_event_flag_free(_lock);
|
|
|
|
#define API_LOCK_UNLOCK(_lock) furi_event_flag_set(_lock, API_LOCK_EVENT);
|
|
|
|
#define API_LOCK_WAIT_UNTIL_UNLOCK_AND_FREE(_lock) \
|
|
API_LOCK_WAIT_UNTIL_UNLOCK(_lock); \
|
|
API_LOCK_FREE(_lock);
|