4#include "event_loop_link_i.h"
5#include "event_loop_timer_i.h"
6#include "event_loop_tick_i.h"
20 FuriEventLoopObject* object;
25 void* callback_context;
34#define FURI_EVENT_LOOP_TREE_RANK (4)
38 FURI_EVENT_LOOP_TREE_RANK,
44#define M_OPL_FuriEventLoopTree_t() BPTREE_OPLIST(FuriEventLoopTree, M_POD_OPLIST)
46#define FURI_EVENT_LOOP_FLAG_NOTIFY_INDEX (2)
49 FuriEventLoopFlagEvent = (1 << 0),
50 FuriEventLoopFlagStop = (1 << 1),
51 FuriEventLoopFlagTimer = (1 << 2),
52 FuriEventLoopFlagPending = (1 << 3),
55#define FuriEventLoopFlagAll \
56 (FuriEventLoopFlagEvent | FuriEventLoopFlagStop | FuriEventLoopFlagTimer | \
57 FuriEventLoopFlagPending)
60 FuriEventLoopProcessStatusComplete,
61 FuriEventLoopProcessStatusIncomplete,
62 FuriEventLoopProcessStatusFreeLater,
63} FuriEventLoopProcessStatus;
66 FuriEventLoopStateStopped,
67 FuriEventLoopStateIdle,
68 FuriEventLoopStateProcessing,
83 volatile FuriEventLoopState state;
86 FuriEventLoopTree_t tree;
87 WaitingList_t waiting_list;
90 TimerList_t timer_list;
92 TimerQueue_t timer_queue;
94 PendingQueue_t pending_queue;
void(* FuriEventLoopPendingCallback)(void *context)
Timer callback type for functions to be called in a deferred manner.
Definition event_loop.h:177
FuriEventLoopEvent
Enumeration of event types, flags and masks.
Definition event_loop.h:35
void(* FuriEventLoopEventCallback)(FuriEventLoopObject *object, void *context)
Callback type for event loop events.
Definition event_loop.h:204
Definition event_loop_link_i.h:27
Definition event_loop_i.h:78
Definition event_loop_i.h:14
Definition event_loop_i.h:71
Definition event_loop_tick_i.h:5
void * FuriThreadId
Unique thread identifier type (used by the OS kernel).
Definition thread.h:56