@web-font-path: "roboto-debian.css";
v2.2.0 (RP2040)
Loading...
Searching...
No Matches
async_context.h File Reference
`#include "pico.h"`
`#include "pico/time.h"`
Include dependency graph for async_context.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures

struct | async_work_on_timeout
| A "timeout" instance used by an async_context. More...
struct | async_when_pending_worker
| A "worker" instance used by an async_context. More...
struct | async_context_type
| Implementation of an async_context type, providing methods common to that type. More...
struct | async_context
| Base structure type of all async_contexts. For details about its use, see pico_async_context. More...

## Macros

#define | ASYNC_CONTEXT_FLAG_CALLBACK_FROM_NON_IRQ 0x1
#define | ASYNC_CONTEXT_FLAG_CALLBACK_FROM_IRQ 0x2
#define | ASYNC_CONTEXT_FLAG_POLLED 0x4

## Typedefs

typedef struct async_context | async_context_t
typedef struct async_work_on_timeout | async_at_time_worker_t
| A "timeout" instance used by an async_context.
typedef struct async_when_pending_worker | async_when_pending_worker_t
| A "worker" instance used by an async_context.
typedef struct async_context_type | async_context_type_t
| Implementation of an async_context type, providing methods common to that type.

## Enumerations

enum | { ASYNC_CONTEXT_POLL = 1 , ASYNC_CONTEXT_THREADSAFE_BACKGROUND = 2 , ASYNC_CONTEXT_FREERTOS = 3 }

## Functions

static void | async_context_acquire_lock_blocking (async_context_t *context)
| Acquire the async_context lock.
static void | async_context_release_lock (async_context_t *context)
| Release the async_context lock.
static void | async_context_lock_check (async_context_t *context)
| Assert if the caller does not own the lock for the async_context.
static uint32_t | async_context_execute_sync (async_context_t *context, uint32_t(*func)(void *param), void *param)
| Execute work synchronously on the core the async_context belongs to.
static bool | async_context_add_at_time_worker (async_context_t *context, async_at_time_worker_t *worker)
| Add an "at time" worker to a context.
static bool | async_context_add_at_time_worker_at (async_context_t *context, async_at_time_worker_t *worker, absolute_time_t at)
| Add an "at time" worker to a context.
static bool | async_context_add_at_time_worker_in_ms (async_context_t *context, async_at_time_worker_t *worker, uint32_t ms)
| Add an "at time" worker to a context.
static bool | async_context_remove_at_time_worker (async_context_t *context, async_at_time_worker_t *worker)
| Remove an "at time" worker from a context.
static bool | async_context_add_when_pending_worker (async_context_t *context, async_when_pending_worker_t *worker)
| Add a "when pending" worker to a context.
static bool | async_context_remove_when_pending_worker (async_context_t *context, async_when_pending_worker_t *worker)
| Remove a "when pending" worker from a context.
static void | async_context_set_work_pending (async_context_t *context, async_when_pending_worker_t *worker)
| Mark a "when pending" worker as having work pending.
static void | async_context_poll (async_context_t *context)
| Perform any pending work for polling style async_context.
static void | async_context_wait_until (async_context_t *context, absolute_time_t until)
| sleep until the specified time in an async_context callback safe way
static void | async_context_wait_for_work_until (async_context_t *context, absolute_time_t until)
| Block until work needs to be done or the specified time has been reached.
static void | async_context_wait_for_work_ms (async_context_t *context, uint32_t ms)
| Block until work needs to be done or the specified number of milliseconds have passed.
static uint | async_context_core_num (const async_context_t *context)
| Return the processor core this async_context belongs to.
static void | async_context_deinit (async_context_t *context)
| End async_context processing, and free any resources.