do {
has_next = !!(queue->Entries[idx].Flags & VRING_DESC_F_NEXT);
int next_idx = queue->Entries[idx].Next;
do {
has_next = !!(queue->Entries[idx].Flags & VRING_DESC_F_NEXT);
int next_idx = queue->Entries[idx].Next;
// Return the buffer to the avaliable pool
VirtIO_ReleaseBuffer(&Queue->Buffers[qent]);
if(Queue->NextUsedPop == UsedIdx)
// Return the buffer to the avaliable pool
VirtIO_ReleaseBuffer(&Queue->Buffers[qent]);
if(Queue->NextUsedPop == UsedIdx)