MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / cbm_mmap_read

Function cbm_mmap_read

src/foundation/platform.c:42–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40#include "foundation/win_utf8.h"
41
42void *cbm_mmap_read(const char *path, size_t *out_size) {
43 if (!path || !out_size) {
44 return NULL;
45 }
46 *out_size = 0;
47
48 wchar_t *wpath = cbm_utf8_to_wide(path);
49 if (!wpath) {
50 return NULL;
51 }
52
53 HANDLE file = CreateFileW(wpath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING,
54 FILE_ATTRIBUTE_NORMAL, NULL);
55 if (file == INVALID_HANDLE_VALUE) {
56 free(wpath);
57 return NULL;
58 }
59 LARGE_INTEGER sz;
60 if (!GetFileSizeEx(file, &sz) || sz.QuadPart == 0) {
61 CloseHandle(file);
62 free(wpath);
63 return NULL;
64 }
65 HANDLE mapping = CreateFileMappingW(file, NULL, PAGE_READONLY, 0, 0, NULL);
66 if (!mapping) {
67 CloseHandle(file);
68 free(wpath);
69 return NULL;
70 }
71 void *addr = MapViewOfFile(mapping, FILE_MAP_READ, 0, 0, 0);
72 CloseHandle(mapping);
73 CloseHandle(file);
74 free(wpath);
75 if (!addr) {
76 return NULL;
77 }
78 *out_size = (size_t)sz.QuadPart;
79 return addr;
80}
81
82void cbm_munmap(void *addr, size_t size) {
83 (void)size;

Callers 1

test_platform.cFile · 0.85

Calls 1

cbm_utf8_to_wideFunction · 0.85

Tested by

no test coverage detected