vm_control/
any_control_tube.rs

1// Copyright 2026 The ChromiumOS Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5use base::Tube;
6
7/// All the tube types that can be "registered" with the platform specific `fn run_control`
8/// implementation. These tubes are generally one half of a tube pair, with the other half held by
9/// a device.
10#[remain::sorted]
11pub enum AnyControlTube {
12    // See `BalloonTube`.
13    Balloon(Tube),
14    // Sends `DiskControlCommand`.
15    Disk(Tube),
16    /// Receives `FsMappingRequest`.
17    Fs(Tube),
18    // Sends `GpuControlCommand`.
19    Gpu(Tube),
20    /// Receives `IrqHandlerRequest`.
21    IrqTube(Tube),
22    // Sends `PvClockCommand`.
23    PvClock(Tube),
24    // Sends `SndControlCommand`.
25    Snd(Tube),
26    /// Receives `VmRequest`.
27    Vm(Tube),
28    VmMemoryTube {
29        tube: Tube,
30        /// See devices::virtio::VirtioDevice.expose_shared_memory_region_with_viommu
31        expose_with_viommu: bool,
32    },
33    /// Receives `VmMemoryMappingRequest`.
34    VmMsync(Tube),
35}