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

Function cbm_mmap_read

src/foundation/platform.c:88–126  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

86#include "foundation/win_utf8.h"
87
88void *cbm_mmap_read(const char *path, size_t *out_size) {
89 if (!path || !out_size) {
90 return NULL;
91 }
92 *out_size = 0;
93
94 wchar_t *wpath = cbm_path_to_wide(path);
95 if (!wpath) {
96 return NULL;
97 }
98
99 HANDLE file = CreateFileW(wpath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING,
100 FILE_ATTRIBUTE_NORMAL, NULL);
101 if (file == INVALID_HANDLE_VALUE) {
102 free(wpath);
103 return NULL;
104 }
105 LARGE_INTEGER sz;
106 if (!GetFileSizeEx(file, &sz) || sz.QuadPart == 0) {
107 CloseHandle(file);
108 free(wpath);
109 return NULL;
110 }
111 HANDLE mapping = CreateFileMappingW(file, NULL, PAGE_READONLY, 0, 0, NULL);
112 if (!mapping) {
113 CloseHandle(file);
114 free(wpath);
115 return NULL;
116 }
117 void *addr = MapViewOfFile(mapping, FILE_MAP_READ, 0, 0, 0);
118 CloseHandle(mapping);
119 CloseHandle(file);
120 free(wpath);
121 if (!addr) {
122 return NULL;
123 }
124 *out_size = (size_t)sz.QuadPart;
125 return addr;
126}
127
128void cbm_munmap(void *addr, size_t size) {
129 (void)size;

Callers 1

test_platform.cFile · 0.85

Calls 1

cbm_path_to_wideFunction · 0.85

Tested by

no test coverage detected