Smart Remote 3 nRF52 v1.2
Copy URL
Source
Common
app_scheduler.h
1
/*$$$LICENCE_NORDIC_STANDARD<2016>$$$*/
2
3
#ifndef APP_SCHEDULER_H__
4
#define APP_SCHEDULER_H__
5
6
#include <stdint.h>
7
#include "nrf_balloc.h"
8
#include "app_error.h"
9
#include "app_isched.h"
10
19
typedef
void (*
app_sched_event_handler_t
)(
void
*p_event_data, uint16_t event_data_size);
20
22
typedef
struct
23
{
24
app_sched_event_handler_t
handler
;
25
unsigned
int
event_data_size
;
27
// This field must be the last one in the struture.
28
uint32_t event_data[1];
29
}
app_sched_event_t
;
30
32
#define APP_SCHED_EVT_SIZE(_event_data_size) \
33
ALIGN_NUM(sizeof(uint32_t), (offsetof(app_sched_event_t, event_data) + (_event_data_size)))
34
41
#define APP_SCHED_INIT(_isched, _max_event_data_size, _pool_size) \
42
do { \
43
NRF_BALLOC_DEF(__app_scheduler_event_pool, \
44
APP_SCHED_EVT_SIZE(_max_event_data_size), \
45
_pool_size); \
46
\
47
APP_ERROR_CHECK(nrf_balloc_init(&__app_scheduler_event_pool)); \
48
APP_ERROR_CHECK(app_sched_init((_isched), \
49
&__app_scheduler_event_pool, \
50
(_max_event_data_size))); \
51
} while (0)
52
63
uint32_t
app_sched_init
(
app_isched_t
*p_isched,
64
const
nrf_balloc_t *p_pool,
65
unsigned
int
max_event_data_size);
66
77
uint32_t
app_sched_event_put
(
void
* p_event_data,
78
uint16_t event_size,
79
app_sched_event_handler_t
handler);
80
85
uint8_t
app_sched_get_max_utilization
(
void
);
86
87
#endif // APP_SCHEDULER_H__
88