Struct mmtk::util::heap::layout::map64::Map64

source ·
pub struct Map64 {
    inner: UnsafeCell<Map64Inner>,
}

Fields§

§inner: UnsafeCell<Map64Inner>

Implementations§

source§

impl Map64

source

pub fn new() -> Self

source§

impl Map64

source

unsafe fn mut_self(&self) -> &mut Map64Inner

§Safety

The caller needs to guarantee there is no race condition. Either only one single thread is using this method, or multiple threads are accessing mutally exclusive data (e.g. different indices in arrays). In other cases, use mut_self_with_sync().

source

fn inner(&self) -> &Map64Inner

source

fn space_index(addr: Address) -> Option<usize>

source

fn is_space_start(base: Address) -> bool

Trait Implementations§

source§

impl Default for Map64

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl VMMap for Map64

source§

unsafe fn allocate_contiguous_chunks( &self, descriptor: SpaceDescriptor, chunks: usize, _head: Address, maybe_freelist: Option<&mut dyn FreeList> ) -> Address

§Safety

Caller must ensure that only one thread is calling this method.

source§

fn insert(&self, start: Address, extent: usize, descriptor: SpaceDescriptor)

source§

fn create_freelist(&self, start: Address) -> CreateFreeListResult

Create a free-list for a discontiguous space. Must only be called at boot time.
source§

fn create_parent_freelist( &self, start: Address, units: usize, grain: i32 ) -> CreateFreeListResult

Create a free-list for a contiguous space. Must only be called at boot time.
source§

fn get_next_contiguous_region(&self, _start: Address) -> Address

source§

fn get_contiguous_region_chunks(&self, _start: Address) -> usize

source§

fn get_contiguous_region_size(&self, _start: Address) -> usize

source§

fn get_available_discontiguous_chunks(&self) -> usize

Return the total number of chunks available (unassigned) within the range of virtual memory apportioned to discontiguous spaces.
source§

fn get_chunk_consumer_count(&self) -> usize

Return the total number of clients contending for chunks. This is useful when establishing conservative bounds on the number of remaining chunks.
source§

fn free_all_chunks(&self, _any_chunk: Address)

source§

unsafe fn free_contiguous_chunks(&self, _start: Address) -> usize

Safety Read more
source§

fn finalize_static_space_map( &self, _from: Address, _to: Address, _on_discontig_start_determined: &mut dyn FnMut(Address) )

Finalize the globlal maps in the implementations of VMMap. This should be called after all spaces are created. Read more
source§

fn is_finalized(&self) -> bool

source§

fn get_descriptor_for_address(&self, address: Address) -> SpaceDescriptor

source§

fn add_to_cumulative_committed_pages(&self, pages: usize)

source§

impl Send for Map64

source§

impl Sync for Map64

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where T: 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>

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)

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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.