blob: 50b1e391ce18b6cc112e4c819f0c7fec969bf4c4 [file]
// Copyright 2017 The Fuchsia Authors
//
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT
//! Hypervisor state invalidator facade mirroring `<hypervisor/state_invalidator.h>`.
use super::state_invalidator_ffi::cpp_state_invalidator_invalidate;
/// Allows hypervisor state to be invalidated.
#[repr(C)]
pub struct StateInvalidator {
_opaque: zr::OpaqueFacade,
}
impl StateInvalidator {
/// Invalidates the cached hypervisor state.
#[inline]
pub fn invalidate(&mut self) {
// SAFETY: `self` is a valid mutable reference to a C++ `StateInvalidator` object.
unsafe {
cpp_state_invalidator_invalidate(self);
}
}
}