1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/memory.h Wed Jan 20 01:37:12 2021 +0100
1.3 @@ -0,0 +1,35 @@
1.4 +#pragma once
1.5 +
1.6 +#include <list>
1.7 +#include <mutex>
1.8 +
1.9 +#include "memory_utils.h"
1.10 +#include "region.h"
1.11 +#include "types.h"
1.12 +
1.13 +
1.14 +
1.15 +/* A memory pool abstraction. */
1.16 +
1.17 +class Memory
1.18 +{
1.19 +protected:
1.20 + std::mutex _lock;
1.21 +
1.22 + unsigned int _limit;
1.23 + offset_t _region_size;
1.24 + bool _limited;
1.25 +
1.26 +public:
1.27 + explicit Memory(unsigned int limit, offset_t region_size=PAGE_SIZE);
1.28 +
1.29 + explicit Memory();
1.30 +
1.31 + Region *region(offset_t size);
1.32 +
1.33 + Region *region();
1.34 +
1.35 + void release(Region *region);
1.36 +};
1.37 +
1.38 +// vim: tabstop=4 expandtab shiftwidth=4