E1000 Driver

E1000 driver in Rust for the Intel 82540EP/EM Gigabit Ethernet.

Support features

Quick start on bare metal OS

Initialize PCI and E1000 driver ``` pub struct Kernfn; impl e1000_driver::e1000::KernelFunc for Kernfn { ... }

e1000driver::pci::pciinit();

let mut e1000device = e1000driver::e1000::E1000Device::::new(e1000driver::pci::E1000REGS as usize).unwrap(); ```

Sending network packets e1000_device.e1000_transmit(&frame);

Receiving network packets let rx_buf = e1000_device.e1000_recv();

Kernel module on Linux

``` cd src/linux make ARCH=arch KDIR=/path/to/linux

e.g. make ARCH=riscv KDIR=/home/rust/linux

```

Reference