From a602753bdae37f6b39c020debc3f8675d95e884e Mon Sep 17 00:00:00 2001 From: Bananymous Date: Sat, 28 Feb 2026 14:51:35 +0200 Subject: [PATCH] Kernel: Add front/back/pop_back to ByteRingBuffer --- kernel/include/kernel/Memory/ByteRingBuffer.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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; }