diff options
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/ipxe/errfile.h | 1 | ||||
| -rw-r--r-- | src/include/ipxe/virtio-pci.h | 4 | ||||
| -rw-r--r-- | src/include/ipxe/virtio-ring.h | 8 |
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_ */ |
