ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
platform/mmap.h
Go to the documentation of this file.
1#pragma once
2
28#include <stddef.h>
29#include <stdbool.h>
30#include "../common.h"
31
32#ifdef _WIN32
33#include <windows.h>
34#endif
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
46typedef struct platform_mmap {
47 void *addr;
48 size_t size;
49#ifdef _WIN32
50 HANDLE file_handle;
51 HANDLE mapping_handle;
52#else
53 int fd;
54#endif
56
65
95asciichat_error_t platform_mmap_open(const char *path, size_t size, platform_mmap_t *out);
96
110
125void platform_mmap_sync(platform_mmap_t *mapping, bool async);
126
134
135#ifdef __cplusplus
136}
137#endif
138
/* platform */
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:46
void platform_mmap_close(platform_mmap_t *mapping)
Unmap and close a memory-mapped file.
asciichat_error_t platform_mmap_open(const char *path, size_t size, platform_mmap_t *out)
Memory-map a file for read/write access.
bool platform_mmap_is_valid(const platform_mmap_t *mapping)
Check if a mapping is currently valid.
void platform_mmap_sync(platform_mmap_t *mapping, bool async)
Flush memory-mapped changes to disk.
struct platform_mmap platform_mmap_t
Memory-mapped file handle.
void platform_mmap_init(platform_mmap_t *mapping)
Initialize a platform_mmap_t structure.
Memory-mapped file handle.