32 private:
33 uintptr_t _start;
34 uintptr_t _end;
35
36 public:
37 ZVirtualMemory();
38 ZVirtualMemory(uintptr_t start, size_t size);
39
40 bool is_null() const;
41 uintptr_t start() const;
42 uintptr_t end() const;
43 size_t size() const;
44
45 ZVirtualMemory split(size_t size);
46 };
47
48 class ZVirtualMemoryManager {
49 private:
50 ZMemoryManager _manager;
51 bool _initialized;
52
53 void initialize_os();
54
55 bool reserve_contiguous_platform(uintptr_t start, size_t size);
56 bool reserve_contiguous(size_t size);
57 size_t reserve_discontiguous(uintptr_t start, size_t size, size_t min_range);
58 size_t reserve_discontiguous(size_t size);
59 bool reserve(size_t max_capacity);
60
61 void nmt_reserve(uintptr_t start, size_t size);
62
63 public:
64 ZVirtualMemoryManager(size_t max_capacity);
65
66 bool is_initialized() const;
67
68 ZVirtualMemory alloc(size_t size, bool force_low_address);
69 void free(const ZVirtualMemory& vmem);
70 };
71
|
32 private:
33 uintptr_t _start;
34 uintptr_t _end;
35
36 public:
37 ZVirtualMemory();
38 ZVirtualMemory(uintptr_t start, size_t size);
39
40 bool is_null() const;
41 uintptr_t start() const;
42 uintptr_t end() const;
43 size_t size() const;
44
45 ZVirtualMemory split(size_t size);
46 };
47
48 class ZVirtualMemoryManager {
49 private:
50 ZMemoryManager _manager;
51 bool _initialized;
52 size_t _address_bits_seen;
53
54 void initialize_os();
55
56 bool reserve_contiguous_platform(uintptr_t start, size_t size);
57 bool reserve_contiguous(size_t size);
58 size_t reserve_discontiguous(uintptr_t start, size_t size, size_t min_range);
59 size_t reserve_discontiguous(size_t size);
60 bool reserve(size_t max_capacity);
61
62 void nmt_reserve(uintptr_t start, size_t size);
63
64 public:
65 ZVirtualMemoryManager(size_t max_capacity);
66
67 bool is_initialized() const;
68
69 ZVirtualMemory alloc(size_t size, bool force_low_address);
70 void free(const ZVirtualMemory& vmem);
71 };
72
|