// Copyright (c) Vitaliy Filippov, 2023+ // License: VNPL-1.1 or GNU GPL-2.0+ (see README.md for details) #pragma once #include #include struct freelist_item_t { uint64_t start, size; }; // Really trivial freelist allocator // Should be fine for remote RDMA memory management because // most of the time fragmentation shouldn't be an issue as all // memory regions are short-lived struct freelist_allocator_t { std::vector freelist; uint64_t alloc(uint64_t data_size); void free(uint64_t start, uint64_t size); };