diff --git a/src/core/GapBuffer.cc b/src/core/GapBuffer.cc new file mode 100644 index 0000000..bcfdde3 --- /dev/null +++ b/src/core/GapBuffer.cc @@ -0,0 +1,19 @@ +#include "GapBuffer.h" +#include "System.h" + +GapBuffer::GapBuffer() +{ + m_buffer = (uint8_t *)System::alloc_pages(1u); + m_size = System::page_size; +} + +GapBuffer::GapBuffer(uint8_t * buffer, size_t size) +{ + m_buffer = buffer; + m_size = size; +} + +GapBuffer::~GapBuffer() +{ + System::free_pages(m_buffer, m_size >> System::page_size_log); +} diff --git a/src/core/GapBuffer.h b/src/core/GapBuffer.h new file mode 100644 index 0000000..62643ed --- /dev/null +++ b/src/core/GapBuffer.h @@ -0,0 +1,19 @@ +#ifndef GAPBUFFER_H +#define GAPBUFFER_H + +#include +#include + +class GapBuffer +{ +public: + GapBuffer(); + GapBuffer(uint8_t * buffer, size_t size); + ~GapBuffer(); + +protected: + uint8_t * m_buffer; + size_t m_size; +}; + +#endif