/* * Copyright (c) 2024 Trackunit Corporation * * SPDX-License-Identifier: Apache-2.0 */ #include #include #ifndef ZEPHYR_MODEM_STATS_ #define ZEPHYR_MODEM_STATS_ /** * @cond INTERNAL_HIDDEN */ /** Modem statistics buffer structure */ struct modem_stats_buffer { sys_snode_t node; char name[CONFIG_MODEM_STATS_BUFFER_NAME_SIZE]; uint32_t max_used; uint32_t size; }; /** * @endcond */ /** * @brief Initialize modem statistics buffer * * @param buffer Modem statistics buffer instance * @param name Name of buffer instance * @param size Size of buffer */ void modem_stats_buffer_init(struct modem_stats_buffer *buffer, const char *name, uint32_t size); /** * @brief Advertise modem statistics buffer size * * @param buffer Modem statistics buffer instance * @param length Length of buffer * * @note Invoke when buffer size changes * @note Safe to invoke from ISR */ void modem_stats_buffer_advertise_length(struct modem_stats_buffer *buffer, uint32_t length); #endif /* ZEPHYR_MODEM_STATS_ */