Struct devices::NetResourceCarrier
source · pub struct NetResourceCarrier {
pub net_param: NetParameters,
pub msi_device_tube: Tube,
pub ioevent_vm_memory_client: VmMemoryClient,
pub pci_address: Option<PciAddress>,
pub intx_parameter: Option<IntxParameter>,
pub vm_control_tube: Tube,
}
Expand description
A NetResourceCarrier is a ResourceCarrier specialization for virtio-net devices.
TODO(b/289155315): make members private.
Fields§
§net_param: NetParameters
NetParameters for constructing tap device
msi_device_tube: Tube
msi_device_tube for VirtioPciDevice constructor
ioevent_vm_memory_client: VmMemoryClient
ioevent_vm_memory_client for VirtioPciDevice constructor
pci_address: Option<PciAddress>
pci_address for the hotplugged device
intx_parameter: Option<IntxParameter>
intx_parameter for assign_irq
vm_control_tube: Tube
vm_control_tube for VirtioPciDevice constructor
Implementations§
source§impl NetResourceCarrier
impl NetResourceCarrier
sourcepub fn new(
net_param: NetParameters,
msi_device_tube: Tube,
ioevent_vm_memory_client: VmMemoryClient,
vm_control_tube: Tube
) -> Self
pub fn new( net_param: NetParameters, msi_device_tube: Tube, ioevent_vm_memory_client: VmMemoryClient, vm_control_tube: Tube ) -> Self
Constructs NetResourceCarrier.
fn debug_label(&self) -> String
fn keep_rds(&self) -> Vec<RawDescriptor>
fn allocate_address( &mut self, preferred_address: PciAddress, resources: &mut SystemAllocator ) -> Result<(), PciDeviceError>
fn assign_irq( &mut self, irq_evt: IrqLevelEvent, pin: PciInterruptPin, irq_num: u32 )
Trait Implementations§
source§impl<'de> Deserialize<'de> for NetResourceCarrier
impl<'de> Deserialize<'de> for NetResourceCarrier
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl RefUnwindSafe for NetResourceCarrier
impl Send for NetResourceCarrier
impl Sync for NetResourceCarrier
impl Unpin for NetResourceCarrier
impl UnwindSafe for NetResourceCarrier
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.