16#define VIRTIO_FEAT0_NET_MTU 0x00000008
19#define VIRTIO_FEAT0_NET_MAC 0x00000020
22#define VIRTIO_NET_MAC 0x00
25#define VIRTIO_NET_MTU 0x0a
36#define VIRTIO_NET_RX_INDEX 0
39#define VIRTIO_NET_RX_COUNT 128
42#define VIRTIO_NET_RX_MAX 16
45#define VIRTIO_NET_TX_INDEX 1
48#define VIRTIO_NET_TX_COUNT 128
51#define VIRTIO_NET_TX_MAX 128
54#define VIRTIO_NET_DESCS 2
100 unsigned int max,
unsigned int dma,
101 unsigned int write ) {
105 queue->slots = slots;
static unsigned int count
Number of entries.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
physaddr_t dma(struct dma_mapping *map, void *addr)
Get DMA address from virtual address.
static const char grant_ref_t unsigned int struct io_buffer ** iobufs
uint8_t max
Maximum fill level.
unsigned int fill
Effective fill level.
struct dma_mapping map
DMA mapping for packet header.
unsigned int mask
Descriptor index ring mask.
struct virtio_queue queue
Underlying virtio queue.
uint8_t * slots
Descriptor slot ring.
uint8_t count
Requested queue size.
union virtio_net_header hdr
Shared packet header.
struct io_buffer ** iobufs
I/O buffer list.
uint8_t write
Buffer writability flag for packet header.
uint8_t dma
DMA direction for packet header.
size_t hlen
Virtio network header length.
size_t mfs
Maximum frame size.
struct io_buffer * rx_iobufs[VIRTIO_NET_RX_MAX]
Receive I/O buffers.
uint8_t rx_slots[VIRTIO_NET_RX_MAX]
Receive descriptor slot ring.
struct virtio_device virtio
Underlying virtio device.
struct virtio_net_queue tx
Transmit queue.
struct virtio_net_queue rx
Receive queue.
uint8_t tx_slots[VIRTIO_NET_TX_MAX]
Transmit descriptor slot ring.
struct io_buffer * tx_iobufs[VIRTIO_NET_TX_MAX]
Transmit I/O buffers.
#define VIRTIO_NET_RX_MAX
Receive queue maximum fill level.
static void virtio_net_queue_init(struct virtio_net_queue *queue, struct io_buffer **iobufs, uint8_t *slots, unsigned int index, unsigned int count, unsigned int max, unsigned int dma, unsigned int write)
Initialise virtio network queue.
#define VIRTIO_NET_TX_MAX
Transmit queue maximum fill level.