| /* |
| * Copyright (c) 2022 Raspberry Pi (Trading) Ltd. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| #ifndef _PICO_LWIP_FREERTOS_H |
| #define _PICO_LWIP_FREERTOS_H |
| |
| #include "pico.h" |
| #include "pico/async_context.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** \file pico/lwip_freertos.h |
| * \defgroup pico_lwip_freertos pico_lwip_freertos |
| * \ingroup pico_lwip |
| * \brief Glue library for integration lwIP in \c NO_SYS=0 mode with the SDK |
| * |
| * Simple \c init and \c deinit are all that is required to hook up lwIP (with full blocking API support) via an \ref async_context instance |
| */ |
| |
| /*! \brief Initializes lwIP (NO_SYS=0 mode) support support for FreeRTOS using the provided async_context |
| * \ingroup pico_lwip_freertos |
| * |
| * If the initialization succeeds, \ref lwip_freertos_deinit() can be called to shutdown lwIP support |
| * |
| * \param context the async_context instance that provides the abstraction for handling asynchronous work. Note in general |
| * this would be an \ref async_context_freertos instance, though it doesn't have to be. |
| * |
| * \return true if the initialization succeeded |
| */ |
| bool lwip_freertos_init(async_context_t *context); |
| |
| /*! \brief De-initialize lwIP (NO_SYS=0 mode) support for FreeRTOS |
| * \ingroup pico_lwip_freertos |
| * |
| * Note that since lwIP may only be initialized once, and doesn't itself provide a shutdown mechanism, lwIP |
| * itself may still consume resources. |
| * |
| * It is however safe to call \ref lwip_freertos_init again later. |
| * |
| * \param context the async_context the lwip_freertos support was added to via \ref lwip_freertos_init |
| */ |
| void lwip_freertos_deinit(async_context_t *context); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif |