Add rtl8139 driver

This commit is contained in:
Jeremy Soller
2023-07-06 10:32:16 -06:00
parent f91770ed64
commit bfe8536d58
7 changed files with 859 additions and 1 deletions
+5 -1
View File
@@ -6,7 +6,7 @@ use std::convert::TryInto;
use std::collections::BTreeMap;
use netutils::setcfg;
use syscall::error::{Error, EACCES, EBADF, EINVAL, EWOULDBLOCK, Result};
use syscall::error::{Error, EACCES, EBADF, EINVAL, EMSGSIZE, EWOULDBLOCK, Result};
use syscall::flag::{EventFlags, O_NONBLOCK};
use syscall::io::{Dma, Mmio, Io, ReadOnly};
use syscall::scheme::SchemeBlockMut;
@@ -152,6 +152,10 @@ impl SchemeBlockMut for Rtl8168 {
if ! td.ctrl.readf(OWN) {
let data = &mut self.transmit_buffer[self.transmit_i];
if buf.len() > data.len() {
return Err(Error::new(EMSGSIZE));
}
let mut i = 0;
while i < buf.len() && i < data.len() {
data[i].write(buf[i]);