virtio: feature negotiation

This commit is contained in:
Matheus
2024-03-29 13:36:48 -03:00
parent 2030ca8c5b
commit 87b0ff64b2
3 changed files with 27 additions and 5 deletions
+3
View File
@@ -46,9 +46,12 @@ typedef struct {
void virtio_init();
size_t virtio_queuesize(viodevice_t *viodevice, int queue);
void virtio_enablequeue(viodevice_t *viodevice, int queue);
uint64_t virtio_negotiatefeatures(viodevice_t *viodevice, uint64_t features);
void *virtio_createqueue(viodevice_t *viodevice, vioqueue_t *vioqueue, int queue, size_t size, int msix);
void virtio_enabledevice(viodevice_t *viodevice);
#define VIO_FEATURE_VERSION_1 (1l << 32)
#define VIO_CONFIG_STATUS_SET(x, v) (x)->config->status |= v
#define VIO_CONFIG_STATUS_ACK 1
#define VIO_CONFIG_STATUS_DRIVER 2