Struct mmtk::util::heap::layout::map32::Map32

source ·
pub struct Map32 {
    sync: Mutex<()>,
    inner: UnsafeCell<Map32Inner>,
}

Fields§

§sync: Mutex<()>§inner: UnsafeCell<Map32Inner>

Implementations§

source§

impl Map32

source

pub fn new() -> Self

source§

impl Map32

source

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

§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 mut_self_with_sync(&self) -> (MutexGuard<'_, ()>, &mut Map32Inner)

source

fn free_contiguous_chunks_no_lock(&self, chunk: i32) -> usize

source

fn get_discontig_freelist_pr_ordinal(&self) -> usize

Trait Implementations§

source§

impl Default for Map32

source§

fn default() -> Self

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

impl VMMap for Map32

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§

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

Safety Read more
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 Deref for Map32

§

type Target = Map32Inner

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl Send for Map32

source§

impl Sync for Map32

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.