pub use crate::util::metadata::side_metadata::helpers::scan_non_zero_bits_in_metadata_bytes;
use crate::util::metadata::side_metadata::SideMetadataSpec;
use crate::vm::VMBinding;
use super::Address;
#[inline(always)]
pub fn zero_meta_bits(
meta_start_addr: Address,
meta_start_bit: u8,
meta_end_addr: Address,
meta_end_bit: u8,
) {
SideMetadataSpec::zero_meta_bits(meta_start_addr, meta_start_bit, meta_end_addr, meta_end_bit)
}
#[inline(always)]
pub fn set_meta_bits(
meta_start_addr: Address,
meta_start_bit: u8,
meta_end_addr: Address,
meta_end_bit: u8,
) {
SideMetadataSpec::set_meta_bits(meta_start_addr, meta_start_bit, meta_end_addr, meta_end_bit)
}
#[inline(always)]
pub fn address_to_meta_address(metadata_spec: &SideMetadataSpec, data_addr: Address) -> Address {
crate::util::metadata::side_metadata::address_to_meta_address(metadata_spec, data_addr)
}
pub fn initialize_side_metadata<VM: VMBinding>() {
use crate::util::options::Options;
crate::util::metadata::side_metadata::initialize_side_metadata::<VM>(&Options::default());
}
#[cfg(feature = "mock_test")]
pub use crate::mmtk::MMAPPER;