System info & network

This commit is contained in:
2023-09-26 19:40:16 +02:00
commit 504ba77654
89 changed files with 39577 additions and 0 deletions

59
code/debug/logger.h Normal file
View File

@@ -0,0 +1,59 @@
#ifndef _PIUMA_LOGGER_H_
#define _PIUMA_LOGGER_H_
#include "../lib/types.h"
#include "../lib/queue.h"
typedef u8 LogLevel;
#define LOG_ERROR 0
#define LOG_WARNING 50
#define LOG_INFO 100
#define LOG_DEBUG 150
struct LogSourceInfo
{
const char *filename;
u32 line;
const char *function;
};
typedef u64 LogId;
struct LogEntry
{
LogLevel level;
char *message;
LogId id;
LogSourceInfo source;
};
struct Logger
{
QUEUE_TYPE(struct LogEntry) message_queue = NULL;
LogId last_id = 0;
u64 overflow_count = 0; // Number of times the buffer was full, but we added a message anyway removing the oldest one
};
void Logger_Init(struct Logger *logger);
void Logger_Deinit(struct Logger *logger);
void Logger_Clear(struct Logger *logger);
void Logger_AddMessage(struct Logger *logger, LogSourceInfo source_info, LogLevel level, const char *format_message, ...);
void Logger_RemoveOldestMessage(struct Logger *logger);
u64 Logger_MessageCount(struct Logger *logger);
struct LogEntry *Logger_MessageAt(struct Logger *logger, u64 index);
extern struct Logger global_logger;
#define LOG_INIT() Logger_Init(&global_logger)
#define LOG_DEINIT() Logger_Deinit(&global_logger)
#define LOG_CLEAR() Logger_Clear(&global_logger)
#define LOG(level, /*format_message,*/ ...) Logger_AddMessage(&global_logger, LogSourceInfo{.filename = __FILE__, .line = __LINE__, .function = __func__}, level, /*format_message,*/ __VA_ARGS__)
#endif