27 #include "gc/z/zGranuleMap.hpp" 28 #include "memory/allocation.hpp" 29 30 #include <Windows.h> 31 32 class ZBackingFile { 33 private: 34 ZGranuleMap<HANDLE> _handles; 35 size_t _size; 36 37 HANDLE get_handle(uintptr_t offset) const; 38 void put_handle(uintptr_t offset, HANDLE handle); 39 void clear_handle(uintptr_t offset); 40 41 size_t commit_from_paging_file(size_t offset, size_t size); 42 size_t uncommit_from_paging_file(size_t offset, size_t size); 43 44 public: 45 ZBackingFile(); 46 47 size_t size() const; 48 49 size_t commit(size_t offset, size_t length); 50 size_t uncommit(size_t offset, size_t length); 51 52 void map(uintptr_t addr, size_t size, size_t offset) const; 53 void unmap(uintptr_t addr, size_t size) const; 54 }; 55 56 #endif // OS_WINDOWS_GC_Z_ZBACKINGFILE_WINDOWS_HPP | 27 #include "gc/z/zGranuleMap.hpp" 28 #include "memory/allocation.hpp" 29 30 #include <Windows.h> 31 32 class ZBackingFile { 33 private: 34 ZGranuleMap<HANDLE> _handles; 35 size_t _size; 36 37 HANDLE get_handle(uintptr_t offset) const; 38 void put_handle(uintptr_t offset, HANDLE handle); 39 void clear_handle(uintptr_t offset); 40 41 size_t commit_from_paging_file(size_t offset, size_t size); 42 size_t uncommit_from_paging_file(size_t offset, size_t size); 43 44 public: 45 ZBackingFile(); 46 47 bool is_initialized() const; 48 49 void warn_commit_limits(size_t max) const; 50 51 size_t size() const; 52 53 size_t commit(size_t offset, size_t length); 54 size_t uncommit(size_t offset, size_t length); 55 56 void map(uintptr_t addr, size_t size, size_t offset) const; 57 void unmap(uintptr_t addr, size_t size) const; 58 }; 59 60 #endif // OS_WINDOWS_GC_Z_ZBACKINGFILE_WINDOWS_HPP |