ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
log/mmap.h
Go to the documentation of this file.
1#pragma once
2
29
30#include <stdint.h>
31#include <stdbool.h>
32// C11 stdatomic.h conflicts with MSVC's C++ <atomic> header on Windows.
33#if defined(__cplusplus) && defined(_WIN32)
34#include <atomic>
35#else
36#include <libplatform/atomic.h>
37#endif
38#include "../common.h"
39#include "../os/mmap.h"
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
46#define LOG_MMAP_DEFAULT_SIZE (4 * 1024 * 1024)
47
56typedef struct log_mmap_config {
57 const char *log_path;
58 size_t max_size;
60
71
81asciichat_error_t log_mmap_init_simple(const char *log_path, size_t max_size);
82
88void log_mmap_destroy(void);
89
103void log_mmap_write(int level, const char *file, int line, const char *func, const char *fmt, ...);
104
110bool log_mmap_is_active(void);
111
118void log_mmap_sync(void);
119
129
137
145bool log_mmap_get_usage(size_t *used, size_t *capacity);
146
156void log_mmap_rotate(void);
157
158#ifdef __cplusplus
159}
160#endif
⚙️ Common definitions, error codes, macros, and types shared throughout the application
unsigned long long uint64_t
Definition common.h:63
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
struct log_mmap_config log_mmap_config_t
Definition log/log.h:908
asciichat_error_t log_mmap_init(const log_mmap_config_t *config)
Initialize mmap-based text logging.
Definition mmap.c:194
void log_mmap_rotate(void)
Rotate the mmap log (tail-keeping rotation).
Definition mmap.c:426
void log_mmap_install_crash_handlers(void)
Install signal handlers for crash safety.
Definition mmap.c:147
void log_mmap_sync(void)
Force sync the mmap'd file to disk.
Definition mmap.c:397
bool log_mmap_is_active(void)
Check if mmap logging is active.
Definition mmap.c:393
void log_mmap_write(int level, const char *file, int line, const char *func, const char *fmt,...)
Write a log entry directly to the mmap'd file (lock-free).
Definition mmap.c:315
bool log_mmap_get_usage(size_t *used, size_t *capacity)
Get current mmap log usage.
Definition mmap.c:412
void log_mmap_destroy(void)
Shutdown mmap logging.
Definition mmap.c:263
void log_mmap_get_stats(uint64_t *bytes_written, uint64_t *wrap_count)
Get statistics about the mmap log.
Definition mmap.c:403
asciichat_error_t log_mmap_init_simple(const char *log_path, size_t max_size)
Initialize mmap logging with simple parameters.
Definition mmap.c:255
atomic_t bytes_written
Definition mmap.c:45
atomic_t wrap_count
Definition mmap.c:46
Path and size limits for the memory-mapped log file.
Definition log/mmap.h:56
size_t max_size
Definition log/mmap.h:58
const char * log_path
Definition log/mmap.h:57