Struct x86_64::msr::MsrHandlers
source · pub struct MsrHandlers {
pub handler: BTreeMap<u32, (MsrRWType, Rc<RefCell<Box<dyn MsrHandling>>>)>,
pub msr_file: Rc<RefCell<BTreeMap<usize, Rc<MsrDevFile>>>>,
}
Expand description
MSR handler configuration. Per-cpu.
Fields§
§handler: BTreeMap<u32, (MsrRWType, Rc<RefCell<Box<dyn MsrHandling>>>)>
Store read/write permissions to control read/write brfore calling MsrHandling trait.
msr_file: Rc<RefCell<BTreeMap<usize, Rc<MsrDevFile>>>>
Store file descriptor here to avoid cache duplicate descriptors for each MSR. Only collect descriptor of ‘passthrough’ handler, since ‘emulate’ uses descriptor only once during initialization.
Implementations§
Trait Implementations§
source§impl Default for MsrHandlers
impl Default for MsrHandlers
source§fn default() -> MsrHandlers
fn default() -> MsrHandlers
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for MsrHandlers
impl !Send for MsrHandlers
impl !Sync for MsrHandlers
impl Unpin for MsrHandlers
impl !UnwindSafe for MsrHandlers
Blanket Implementations§
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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 + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
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.