Type Definition jemalloc_sys::extent_alloc_t

source ·
pub type extent_alloc_t = unsafe extern "C" fn(extent_hooks: *mut extent_hooks_t, new_addr: *mut c_void, size: size_t, alignment: size_t, zero: *mut bool, commit: *mut bool, arena_ind: c_uint) -> *mut c_void;
Expand description

Extent allocation function.

On success returns a pointer to size bytes of mapped memory on behalf of arena arena_ind such that the extent’s base address is a multiple of alignment, as well as setting *zero to indicate whether the extent is zeroed and *commit to indicate whether the extent is committed.

Zeroing is mandatory if *zero is true upon function entry. Committing is mandatory if *commit is true upon function entry. If new_addr is not null, the returned pointer must be new_addr on success or null on error.

Committed memory may be committed in absolute terms as on a system that does not overcommit, or in implicit terms as on a system that overcommits and satisfies physical memory needs on demand via soft page faults. Note that replacing the default extent allocation function makes the arena’s arena.<i>.dss setting irrelevant.

Errors

On error the function returns null and leaves *zero and *commit unmodified.

Safety

The behavior is undefined if:

  • the size parameter is not a multiple of the page size
  • the alignment parameter is not a power of two at least as large as the page size