Commit 641f3dda authored by Daniel Krebs's avatar Daniel Krebs

lib: first draft of memory manager

parent 94fa98b6
#pragma once
#include <cstdint>
#include "log.hpp"
#include "directed_graph.hpp"
namespace villas {
class Mapping : public graph::Edge {
public:
// create mapping here (if needed)
Mapping() {}
// destroy mapping here (if needed)
~Mapping() {}
private:
uintptr_t src;
uintptr_t dest;
size_t size;
};
class AddressSpace : public graph::Vertex {
private:
// do we need any metadata? maybe a name?
int id;
};
// is or has a graph
class MemoryManager {
// This is a singleton
private:
MemoryManager() = default;
static MemoryManager* instance;
public:
static MemoryManager& get();
private:
// std::list<>
};
} // namespace villas
......@@ -25,6 +25,7 @@ set(SOURCES
kernel/pci.c
kernel/vfio.c
memory_manager.cpp
plugin.c
plugin.cpp
utils.c
......
#include "memory_manager.hpp"
namespace villas {
MemoryManager*
MemoryManager::instance = nullptr;
MemoryManager&
MemoryManager::get()
{
if(instance == nullptr) {
instance = new MemoryManager;
}
return *instance;
}
} // namespace villas
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment