diff options
author | Gurchetan Singh <gurchetansingh@chromium.org> | 2019-04-30 10:22:15 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-10-01 07:53:34 +0000 |
commit | 719f2831ed394bf4f3fd777938261bda493b05fc (patch) | |
tree | 9397041cb0b3db2df13fee96dec621db7a691d14 /devices/src/virtio/gpu/protocol.rs | |
parent | 5b636babc1e83b7187ef72bd85b3a3bdc2e5d03f (diff) | |
download | crosvm-719f2831ed394bf4f3fd777938261bda493b05fc.tar crosvm-719f2831ed394bf4f3fd777938261bda493b05fc.tar.gz crosvm-719f2831ed394bf4f3fd777938261bda493b05fc.tar.bz2 crosvm-719f2831ed394bf4f3fd777938261bda493b05fc.tar.lz crosvm-719f2831ed394bf4f3fd777938261bda493b05fc.tar.xz crosvm-719f2831ed394bf4f3fd777938261bda493b05fc.tar.zst crosvm-719f2831ed394bf4f3fd777938261bda493b05fc.zip |
virtio-gpu: handle VIRTIO_GPU_CMD_RESOURCE_CREATE_V2
BUG=chromium:924405 TEST=compile Change-Id: I57379452f6805aaf429c268b95ddd3aecd07e90e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1591463 Reviewed-by: Zach Reizner <zachr@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Tested-by: Gurchetan Singh <gurchetansingh@chromium.org> Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Diffstat (limited to 'devices/src/virtio/gpu/protocol.rs')
-rw-r--r-- | devices/src/virtio/gpu/protocol.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/devices/src/virtio/gpu/protocol.rs b/devices/src/virtio/gpu/protocol.rs index 9c3b112..c6773dd 100644 --- a/devices/src/virtio/gpu/protocol.rs +++ b/devices/src/virtio/gpu/protocol.rs @@ -86,6 +86,8 @@ pub const VIRTIO_GPU_UNCACHED: u32 = 3; /* Limits on virtio-gpu stream (not upstreamed) */ pub const VIRTIO_GPU_MAX_BLOB_ARGUMENT_SIZE: u32 = 4096; +/* This matches the limit in udmabuf.c */ +pub const VIRTIO_GPU_MAX_IOVEC_ENTRIES: u32 = 1024; pub fn virtio_gpu_cmd_str(cmd: u32) -> &'static str { match cmd { @@ -515,6 +517,32 @@ pub struct virtio_gpu_resp_allocation_metadata { unsafe impl DataInit for virtio_gpu_resp_allocation_metadata {} +#[derive(Copy, Clone, Debug, Default)] +#[repr(C)] +pub struct virtio_gpu_resource_create_v2 { + pub hdr: virtio_gpu_ctrl_hdr, + pub resource_id: Le32, + pub guest_memory_type: Le32, + pub guest_caching_type: Le32, + pub padding: Le32, + pub size: Le64, + pub pci_addr: Le64, + pub args_size: Le32, + pub nr_entries: Le32, +} + +unsafe impl DataInit for virtio_gpu_resource_create_v2 {} + +#[derive(Copy, Clone, Debug, Default)] +#[repr(C)] +pub struct virtio_gpu_resource_v2_unref { + pub hdr: virtio_gpu_ctrl_hdr, + pub resource_id: Le32, + pub padding: Le32, +} + +unsafe impl DataInit for virtio_gpu_resource_v2_unref {} + /* simple formats for fbcon/X use */ pub const VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM: u32 = 1; pub const VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM: u32 = 2; @@ -546,6 +574,8 @@ pub enum GpuCommand { TransferToHost3d(virtio_gpu_transfer_host_3d), TransferFromHost3d(virtio_gpu_transfer_host_3d), CmdSubmit3d(virtio_gpu_cmd_submit), + ResourceCreateV2(virtio_gpu_resource_create_v2), + ResourceV2Unref(virtio_gpu_resource_v2_unref), AllocationMetadata(virtio_gpu_allocation_metadata), UpdateCursor(virtio_gpu_update_cursor), MoveCursor(virtio_gpu_update_cursor), @@ -604,6 +634,8 @@ impl fmt::Debug for GpuCommand { TransferToHost3d(_info) => f.debug_struct("TransferToHost3d").finish(), TransferFromHost3d(_info) => f.debug_struct("TransferFromHost3d").finish(), CmdSubmit3d(_info) => f.debug_struct("CmdSubmit3d").finish(), + ResourceCreateV2(_info) => f.debug_struct("ResourceCreateV2").finish(), + ResourceV2Unref(_info) => f.debug_struct("ResourceV2Unref").finish(), AllocationMetadata(_info) => f.debug_struct("AllocationMetadata").finish(), UpdateCursor(_info) => f.debug_struct("UpdateCursor").finish(), MoveCursor(_info) => f.debug_struct("MoveCursor").finish(), @@ -635,6 +667,8 @@ impl GpuCommand { VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D => TransferToHost3d(cmd.read_obj()?), VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D => TransferFromHost3d(cmd.read_obj()?), VIRTIO_GPU_CMD_SUBMIT_3D => CmdSubmit3d(cmd.read_obj()?), + VIRTIO_GPU_CMD_RESOURCE_CREATE_V2 => ResourceCreateV2(cmd.read_obj()?), + VIRTIO_GPU_CMD_RESOURCE_CREATE_V2_UNREF => ResourceV2Unref(cmd.read_obj()?), VIRTIO_GPU_CMD_ALLOCATION_METADATA => AllocationMetadata(cmd.read_obj()?), VIRTIO_GPU_CMD_UPDATE_CURSOR => UpdateCursor(cmd.read_obj()?), VIRTIO_GPU_CMD_MOVE_CURSOR => MoveCursor(cmd.read_obj()?), @@ -664,6 +698,8 @@ impl GpuCommand { TransferToHost3d(info) => &info.hdr, TransferFromHost3d(info) => &info.hdr, CmdSubmit3d(info) => &info.hdr, + ResourceCreateV2(info) => &info.hdr, + ResourceV2Unref(info) => &info.hdr, AllocationMetadata(info) => &info.hdr, UpdateCursor(info) => &info.hdr, MoveCursor(info) => &info.hdr, |