2021-03-20 | Paul Boddie | raw annotate files changeset graph | Fixed missing return statement. |
1 #pragma once 2 3 #include <systypes/base.h> 4 5 #include <mutex> 6 7 #include "memory_utils.h" 8 #include "region.h" 9 10 11 12 /* A memory pool abstraction. */ 13 14 class Memory 15 { 16 protected: 17 std::mutex _lock; 18 offset_t _region_size; 19 20 public: 21 explicit Memory(offset_t region_size=PAGE_SIZE); 22 23 virtual Region *allocate(offset_t size); 24 25 virtual Region *region() = 0; 26 27 virtual void release(Region *region) = 0; 28 }; 29 30 // vim: tabstop=4 expandtab shiftwidth=4