Signed-off-by: David Stevens <stevensd@xxxxxxxxxxxx> --- virtio-gpu.tex | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/virtio-gpu.tex b/virtio-gpu.tex index af4ca61..522f478 100644 --- a/virtio-gpu.tex +++ b/virtio-gpu.tex @@ -186,12 +186,16 @@ \subsubsection{Device Operation: Request header}\label{sec:Device Types / GPU De VIRTIO_GPU_CMD_UPDATE_CURSOR = 0x0300, VIRTIO_GPU_CMD_MOVE_CURSOR, + /* misc commands */ + VIRTIO_GPU_CMD_EXPORT_RESOURCE = 0x0400, + /* success responses */ VIRTIO_GPU_RESP_OK_NODATA = 0x1100, VIRTIO_GPU_RESP_OK_DISPLAY_INFO, VIRTIO_GPU_RESP_OK_CAPSET_INFO, VIRTIO_GPU_RESP_OK_CAPSET, VIRTIO_GPU_RESP_OK_EDID, + VIRTIO_GPU_RESP_OK_EXPORT_RESOURCE, /* error responses */ VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200, @@ -454,6 +458,31 @@ \subsubsection{Device Operation: controlq}\label{sec:Device Types / GPU Device / This detaches any backing pages from a resource, to be used in case of guest swapping or object destruction. +\item[VIRTIO_GPU_CMD_EXPORT_RESOURCE] Exports a resource for use by other + virtio devices. Request data is \field{struct + virtio_gpu_export_resource}. Response type is + VIRTIO_GPU_RESP_OK_EXPORT_RESOURCE, response data is \field{struct + virtio_gpu_resp_export_resource}. + +\begin{lstlisting} +struct virtio_gpu_export_resource { + struct virtio_gpu_ctrl_hdr hdr; + le32 resource_id; + le32 padding; +}; + +struct virtio_gpu_resp_export_resource { + struct virtio_gpu_ctrl_hdr hdr; + le64 uuid_low; + le64 uuid_high; +}; +\end{lstlisting} + +The response contains a uuid which identifies the host private resource to +other virtio devices. Note that if the resource has an attached backing, +modifications made to an exported resource by other devices are not visible +in the attached backing until they are transferred into the backing. + \end{description} \subsubsection{Device Operation: cursorq}\label{sec:Device Types / GPU Device / Device Operation / Device Operation: cursorq} -- 2.24.1.735.g03f4e72817-goog