* Add e1000 network card support
* Read MAC from EEPROM
* Read MAC without EEPROM
* Add device id for ThinkPad X200
* Fix makefile merge
* Add todo list
* Add WIP implementation
* Add qemu trace to makefile
* Rewrite parts of the implementation
* Fix descriptor cloning
* Return received buffer
* Break from loop when transmitted
* Comment out debug code
* Comment out more code
* Rename allocator variables
* Fix debug issue
* Add more device ids
* Reset RxDesc status when done
* Process packet even if ICR_RXT0 is set
* Remove debug output
* Refactor code
* Fix typo
* Fix RDT updates
* Update documentation
* Update makefile to match doc
* Group network cards in readme
* Refactor code
* Avoid using ICR to check for new packets
* Fix panic on invalid datagram size
* Refactor code to stay below 80 chars
* Increase buffer size
* Add FIXME to test for EOP
* Clean up code
* Add PCI id for I217-LM
* Update hardware page
* Add PCI id for the Intel PRO/1000 GT
* Update hardware page
* Fix init_tx for Intel I217-LM
* Refactor comments
* Update website
* Fix whitespace
* Update doc for VirtualBox
* Reorder cards in doc
* Reorder cards in doc
* Restore signal
* Move makefile trace option to qemu
* Add ThinkCentre M83 to hardware list
* Increase receive buffer back to 64
* Refactor reset
* Print MAC address in uppercase
* Disable interrupts
* Add TODO comment
* Add socket command to manual
* Update syscall doc
* Update copyright year in help command
* Fix lisp include
* Fix error styling in shell
* Use uppercase hex
* Update website
* Move some CSI color positions
* Update line-height
* Regenerate www for lisp doc
* Update example email address
* Fix changelog
* Rewrite old changelog as list
* Update changelog
* Update version
* Add links to changelog
* Fix links
* Add date to lisp changelog
* Fix banner for longer version number
* Update screenshot
* Regenerate www
* Remove boot.png
* Update lisp version to 0.5.0
* Update chess version to 0.2.0
* Add screenshot script
* Add sys::ata::Drive struct
* Add fs size to superblock
* Add missing usage option to disk command
* Update changelog
* Store ata::Drive in AtaBlockDevice
* Store allocated block count in superblock
* Rename Superblock to SuperBlock
* Add superblock to memfs
* Use Block instead of LinkedBlock for BlockBitmap
* Rename BlockBitmap to BitmapBlock
* Fix removed const
* Remove some hardcoded constants
* Fix BitmapBlock::free_all
* Allocate the whole remaining disk space
* Use memory size to alloc memfs
* Dynamically use half of the memory for the heap
* Add SuperBlock::check_ata
* Move init to mod.rs
* Update python fuse
* Add BITMAP_SIZE constant
* Fix available space computation
* Limit the heap to 8 GB max
* Fix memfs size
* Add creation time to dir entry
* Update and publish fuse script
* Change boot offset in doc
* Change creation time into last modified time
* Add sort parameter to list command
* Add error for missing sort key
* Add shortcut params for sort
* Add doc about fs
* Add console on diskless boot
* Enumerate all disks
* Avoid hardcoded allocation of root dir
* Refactor ATA code
* Add BlockDevice
* Add mkfs command
* Update readme
* Add warning in the readme about disk modifications
* Use all bits inside BlockBitmap data
* Add makefile
* Overwrite only bootloader and kernel in disk image
* Update readme
* Add doc about mkfs
* Update mkfs command
* Add libm crate
* Add geotime command
* Rename kernel::clock::clock_monotonic to kernel::clock::uptime
* Rename kernel::clock::clock_realtime to kernel::clock::realtime
* Use utc for rtc
* Fix clock in log
* Display MAC address
* Add kernel::pci::find_device
* Mask lower bits of 16-bit Memory Space BAR
* Use array instead of vector for MAC address
* Split interrupts module
* Use IRQ constants instead of InterruptIndex enum
* Replace kernel::sleep by kernel::time
* Add kernel::idt::set_irq_handler
* Add interrupt handler for RTL8139
* Enable bus mastering for RTL8139
* Setup NIC
* Add features for vga/serial and qwerty/dvorak
* Add smoltcp crate
* Use EthernetAddress from smoltcp
* Add RTL8139 struct to implement smoltcp Device
* Save detected device
* Add kernel::mem::translate_addr
* Use physical address of rx_buffer
* Add command to read raw network data
* Parse packet header and length
* Fix missing ascii on last line
* Take CRC into account for packet length
* Fix compilation error
* Move buffer pointers after packet received
* Use buffer slice instead of clone in RxToken
* Add packet transmission and dhcp client
* Configure network interface with DHCP client
* Add debug mode to network interface
* Clean dhcp command output
* Add ip command
* Clean up commands output
* Count number of packets transmitted and received
* Add route command
* Add kernel::random::rand16
* Handle carriage return char
* Add HTTP client
* Improve http command output
* Add DNS resolver command
* Parse DNS responses to A IN queries
* Resolve http host
* Check if interface is ready before operations
* Add timeout to polling loops
* Fix sleep during polling
* Add verbose arg to http command
* Add State struct to Device struct
* Add subcommand config and dump to net command
* Add MTU to RX_BUFFER_LEN when using WRAP
* Fix first transmission index
* Refactor TxToken implementation
* Add user agent to http requests
* Add more comments to code
* Add llvm-tools-preview component to readme
* Add method to translate IRQ into system interrupt
* Clear IRQ mask in set_irq_handler
* Refactor driver code
* Sleep less rather than more
* Add rand32
* Disable RTL8139 interrupts
* Use arrays instead of vectors for buffers
* Add minimum sleep duration
* Add phy_addr to dry init
* Use CAPR and CBR to compute rx buffer offset
* Add debug for alloc issue with continuous physical memory
* Fix timeout in loops
* Add unused buffer to push the rx buffer into contiguous memory
* Add doc about network
* Update readme
* Add read /net/<proto>/<host>/<path> subcommand
* Introduce ATA PIO
* Refactor drives detection
* Refactor drive identification
* Add read from disk
* Add write to disk
* Add Bus#setup to dry read/write code
* Add hex viewer