summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/ipxe/errfile.h1
-rw-r--r--src/include/ipxe/virtio-pci.h4
-rw-r--r--src/include/ipxe/virtio-ring.h8
3 files changed, 9 insertions, 4 deletions
diff --git a/src/include/ipxe/errfile.h b/src/include/ipxe/errfile.h
index 861fee245..ec0703396 100644
--- a/src/include/ipxe/errfile.h
+++ b/src/include/ipxe/errfile.h
@@ -126,6 +126,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#define ERRFILE_snpnet ( ERRFILE_DRIVER | 0x00590000 )
#define ERRFILE_snponly ( ERRFILE_DRIVER | 0x005a0000 )
#define ERRFILE_jme ( ERRFILE_DRIVER | 0x005b0000 )
+#define ERRFILE_virtio_net ( ERRFILE_DRIVER | 0x005c0000 )
#define ERRFILE_scsi ( ERRFILE_DRIVER | 0x00700000 )
#define ERRFILE_arbel ( ERRFILE_DRIVER | 0x00710000 )
diff --git a/src/include/ipxe/virtio-pci.h b/src/include/ipxe/virtio-pci.h
index f0c17e8d2..a09c46316 100644
--- a/src/include/ipxe/virtio-pci.h
+++ b/src/include/ipxe/virtio-pci.h
@@ -69,6 +69,10 @@ static inline void vp_set_status(unsigned int ioaddr, u8 status)
outb(status, ioaddr + VIRTIO_PCI_STATUS);
}
+static inline u8 vp_get_isr(unsigned int ioaddr)
+{
+ return inb(ioaddr + VIRTIO_PCI_ISR);
+}
static inline void vp_reset(unsigned int ioaddr)
{
diff --git a/src/include/ipxe/virtio-ring.h b/src/include/ipxe/virtio-ring.h
index e96dd371d..0afe8bab7 100644
--- a/src/include/ipxe/virtio-ring.h
+++ b/src/include/ipxe/virtio-ring.h
@@ -14,7 +14,7 @@
/* We've given up on this device. */
#define VIRTIO_CONFIG_S_FAILED 0x80
-#define MAX_QUEUE_NUM (512)
+#define MAX_QUEUE_NUM (256)
#define VRING_DESC_F_NEXT 1
#define VRING_DESC_F_WRITE 2
@@ -71,7 +71,7 @@ struct vring_virtqueue {
struct vring vring;
u16 free_head;
u16 last_used_idx;
- u16 vdata[MAX_QUEUE_NUM];
+ void *vdata[MAX_QUEUE_NUM];
/* PCI */
int queue_index;
};
@@ -133,10 +133,10 @@ static inline int vring_more_used(struct vring_virtqueue *vq)
}
void vring_detach(struct vring_virtqueue *vq, unsigned int head);
-int vring_get_buf(struct vring_virtqueue *vq, unsigned int *len);
+void *vring_get_buf(struct vring_virtqueue *vq, unsigned int *len);
void vring_add_buf(struct vring_virtqueue *vq, struct vring_list list[],
unsigned int out, unsigned int in,
- int index, int num_added);
+ void *index, int num_added);
void vring_kick(unsigned int ioaddr, struct vring_virtqueue *vq, int num_added);
#endif /* _VIRTIO_RING_H_ */