diff --git a/kernel/include/kernel/Memory/ByteRingBuffer.h b/kernel/include/kernel/Memory/ByteRingBuffer.h index c3abcad4..ef7be9fc 100644 --- a/kernel/include/kernel/Memory/ByteRingBuffer.h +++ b/kernel/include/kernel/Memory/ByteRingBuffer.h @@ -30,12 +30,30 @@ namespace Kernel m_size -= size; } + void pop_back(size_t size) + { + ASSERT(size <= m_size); + m_size -= size; + } + BAN::ConstByteSpan get_data() const { const uint8_t* base = reinterpret_cast(m_vaddr); return { base + m_tail, m_size }; } + uint8_t front() const + { + ASSERT(!empty()); + return reinterpret_cast(m_vaddr)[m_tail]; + } + + uint8_t back() const + { + ASSERT(!empty()); + return reinterpret_cast(m_vaddr)[m_tail + m_size]; + } + bool empty() const { return m_size == 0; } bool full() const { return m_size == m_capacity; } size_t free() const { return m_capacity - m_size; }