Update docs.

This commit is contained in:
whitequark 2017-01-10 12:29:24 +00:00
parent 37afb84d74
commit 83bb8c6ae8
1 changed files with 12 additions and 13 deletions

View File

@ -28,12 +28,7 @@ fn rx_full() -> bool {
false false
} }
fn rx_length() -> usize { fn rx_setup(buf: *mut u8, length: &mut usize) {
/* platform-specific code to determine the length of an incoming packet */
0
}
fn rx_setup(buf: *mut u8) {
/* platform-specific code to receive a packet into a buffer */ /* platform-specific code to receive a packet into a buffer */
} }
@ -42,7 +37,7 @@ fn tx_empty() -> bool {
false false
} }
fn tx_setup(buf: *const u8) { fn tx_setup(buf: *const u8, length: usize) {
/* platform-specific code to send a buffer with a packet */ /* platform-specific code to send a buffer with a packet */
} }
@ -59,11 +54,13 @@ impl Device for EthernetDevice {
fn receive(&mut self) -> Result<Self::RxBuffer, Error> { fn receive(&mut self) -> Result<Self::RxBuffer, Error> {
if rx_full() { if rx_full() {
let length = rx_length(); let index = self.rx_next;
let index = self.rx_next;
self.rx_next = (self.rx_next + 1) % RX_BUFFERS.len(); self.rx_next = (self.rx_next + 1) % RX_BUFFERS.len();
rx_setup(RX_BUFFERS[self.rx_next]); let mut length = 0;
Ok(unsafe { slice::from_raw_parts(RX_BUFFERS[index], length) }) rx_setup(RX_BUFFERS[self.rx_next], &mut length);
Ok(unsafe {
slice::from_raw_parts(RX_BUFFERS[index], length)
})
} else { } else {
Err(Error::Exhausted) Err(Error::Exhausted)
} }
@ -73,7 +70,9 @@ impl Device for EthernetDevice {
if tx_empty() { if tx_empty() {
let index = self.tx_next; let index = self.tx_next;
self.tx_next = (self.tx_next + 1) % TX_BUFFERS.len(); self.tx_next = (self.tx_next + 1) % TX_BUFFERS.len();
Ok(EthernetTxBuffer(unsafe { slice::from_raw_parts_mut(TX_BUFFERS[index], length) })) Ok(EthernetTxBuffer(unsafe {
slice::from_raw_parts_mut(TX_BUFFERS[index], length)
}))
} else { } else {
Err(Error::Exhausted) Err(Error::Exhausted)
} }
@ -91,7 +90,7 @@ impl AsMut<[u8]> for EthernetTxBuffer {
} }
impl Drop for EthernetTxBuffer { impl Drop for EthernetTxBuffer {
fn drop(&mut self) { tx_setup(self.0.as_ptr()) } fn drop(&mut self) { tx_setup(self.0.as_ptr(), self.0.len()) }
} }
``` ```
*/ */