mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-02 17:21:13 +00:00
2ec9e69fd4
Some more advanced devices like VirtIO GPU do expect they can receive responses to VirtIO commands they issue via VirtIO queue. Such responses are not sent via a separate device writeable queue. Instead the driver is expected to queue some additional descriptors and buffers which the device can then use to provide the reply. This patch adds support for such write-data-read-response opeartion to Genode VirtIO::Queue implementation. The implementation is pretty simple and does not support any fancy features like receiving the response asynchronously. Instead the operation will use caller provided callback to wait for the device to process the command. Once this callback returns the write-data-read-response VirtIO::Queue function will invoke another callback passing received response as argument.