/****************************************************************************
 * This file is part of the project AqHome.
 * AqHome (c) by 2025 Martin Preuss, all rights reserved.
 *
 * The license for this file can be found in the file COPYING which you
 * should have received along with this file.
 ****************************************************************************/

#ifndef AQH_M_MEMSTATS_H
#define AQH_M_MEMSTATS_H


#include <aqhome/api.h>
#include <aqhome/ipc2/message.h>

#include <gwenhywfar/debug.h>


AQHOME_API uint32_t AQH_MemStatsMessage_GetUid(const AQH_MESSAGE *msg);
AQHOME_API uint8_t AQH_MemStatsMessage_GetUptimeHours(const AQH_MESSAGE *msg);
AQHOME_API uint8_t AQH_MemStatsMessage_GetUptimeMinutes(const AQH_MESSAGE *msg);
AQHOME_API uint8_t AQH_MemStatsMessage_GetUptimeSeconds(const AQH_MESSAGE *msg);
AQHOME_API uint8_t AQH_MemStatsMessage_GetUptimeTicks(const AQH_MESSAGE *msg);
AQHOME_API uint16_t AQH_MemStatsMessage_GetStackUsage(const AQH_MESSAGE *msg);
AQHOME_API uint8_t AQH_MemStatsMessage_GetBuffersUsed(const AQH_MESSAGE *msg);
AQHOME_API uint8_t AQH_MemStatsMessage_GetMaxBuffersUsed(const AQH_MESSAGE *msg);
AQHOME_API uint16_t AQH_MemStatsMessage_GetRecvNoBufferErrors(const AQH_MESSAGE *msg);
AQHOME_API uint16_t AQH_MemStatsMessage_GetHeapUsed(const AQH_MESSAGE *msg);
AQHOME_API uint16_t AQH_MemStatsMessage_GetHeapFree(const AQH_MESSAGE *msg);
AQHOME_API uint16_t AQH_MemStatsMessage_GetXramSize(const AQH_MESSAGE *msg);

AQHOME_API void AQH_MemStatsMessage_DumpToBuffer(const AQH_MESSAGE *msg, GWEN_BUFFER *dbuf, const char *sText);











#endif
