| 128 | } |
| 129 | |
| 130 | void ZenFSBlobMMAPFile::prefetch(size_t offset, size_t len) const { |
| 131 | if (offset + len > size_) return; |
| 132 | uint8_t* start = addr_ + offset; |
| 133 | #if defined(_WIN32) |
| 134 | WIN32_MEMORY_RANGE_ENTRY entry{start, len}; |
| 135 | ::PrefetchVirtualMemory(GetCurrentProcess(), 1, &entry, 0); |
| 136 | #else |
| 137 | ::madvise(start, len, MADV_WILLNEED); |
| 138 | #endif |
| 139 | } |
| 140 | |
| 141 | void ZenFSBlobMMAPFile::purge(size_t offset, size_t len) { |
| 142 | if (offset + len > size_) return; |