Hi,
I'm trying to make a new virtio device.
I got it running (I made a functional dummy device & guest driver).
Now I'm trying to build some communication between the device and guest
driver.
I can't seem to find where the actual allocation of virtqueues are made.
I've looked inside virtio_init(), but it just allocates the vq
structures and I don't see
any pointers inside that structure that might give and idea of something
dynamically
allocated. There is a member of that structure named "vector", but it's
type is uint16_t.
I've also looked inside the virtio_add_queue(), and it just makes some
constant assignments.
Where are the vqs buffer space actually allocated?
One more thing. Are the virtqueue functions thread safe, from both point
of views
(qemu and guest driver API's view)?
Also I don't see any dynamic allocations/freeing when pushing and
popping, either.
Cătă