Return received buffer

This commit is contained in:
Vincent Ollivier 2024-03-27 09:35:28 +01:00
parent 900f1c0139
commit 65764a8e56
1 changed files with 5 additions and 4 deletions

View File

@ -462,13 +462,14 @@ impl EthernetDeviceIO for Device {
let rx_id = self.rx_id.load(Ordering::SeqCst);
debug!("NET E1000: rx_id = {}", rx_id);
let rx_descs = self.rx_descs.lock();
//debug!("NET E1000: {:?}", rx_descs[rx_id]);
fence(Ordering::SeqCst);
let rx_id = (rx_id + 1) % RX_BUFFERS_COUNT;
self.rx_id.store(rx_id, Ordering::SeqCst);
//self.write(REG_RDT, rx_id as u32);
//debug!("NET E1000: RDT -> rx_id = {:#X}", rx_id);
self.rx_id.store((rx_id + 1) % RX_BUFFERS_COUNT, Ordering::SeqCst);
let n = rx_descs[rx_id].len as usize;
return Some(self.rx_buffers[rx_id][0..n].to_vec());
}
for i in 0..RX_BUFFERS_COUNT {