Crate libmimalloc_sys[][src]

Structs

mi_heap_area_t

An area of heap space contains blocks of a single size.

Enums

mi_heap_t

First-class heaps that can be destroyed in one go.

Constants

MI_SMALL_SIZE_MAX

The maximum number of bytes which may be used as an argument to a function in the _small family (mi_malloc_small, mi_zalloc_small, etc).

mi_option_abandoned_page_reset

Experimental

mi_option_eager_commit

Option (experimental) specifying eagerly commit segments (4MiB) (enabled by default).

mi_option_eager_commit_delay

Experimental

mi_option_eager_region_commit

Option (experimental) specifying eagerly commit large (256MiB) memory regions (enabled by default, except on Windows).

mi_option_large_os_pages

Option (experimental) to use large OS pages (2MiB in size) if possible.

mi_option_limit_os_alloc

TODO: update later

mi_option_max_errors

Experimental

mi_option_max_warnings

Experimental

mi_option_os_tag

Option (experimental) specifying OS tag to assign to mimalloc’d memory.

mi_option_page_reset

Option (experimental) to reset page memory after mi_option_reset_delay milliseconds when it becomes free.

mi_option_reserve_huge_os_pages

Option (experimental) specifying number of huge OS pages (1GiB in size) to reserve at the start of the program.

mi_option_reserve_os_memory

TODO: update later

mi_option_reset_decommits

Experimental

mi_option_reset_delay

Option (experimental) specifying delay in milli-seconds before resetting a page (100ms by default).

mi_option_segment_cache

Option (experimental) specifying number of segments per thread to keep cached.

mi_option_segment_reset

Experimental

mi_option_show_errors

Option allowing printing error messages to stderr.

mi_option_show_stats

Option allowing printing statistics to stderr when the program is done.

mi_option_use_numa_nodes

Option (experimental) to pretend there are at most N NUMA nodes.

mi_option_verbose

Option allowing printing verbose messages to stderr.

Functions

mi_aligned_alloc

Allocate size bytes aligned by alignment with alignment as the first parameter.

mi_calloc

Allocate count items of size length each.

mi_calloc_aligned

Allocate size * count bytes aligned by alignment.

mi_calloc_aligned_at

Allocate size * count bytes aligned by alignment at a specified offset, zero-initialized.

mi_cfree

Checked free: If p came from mimalloc’s heap (as decided by mi_is_in_heap_region), this is mi_free(p), but otherwise it is a no-op.

mi_check_owned

Check safely if any pointer is part of the default heap of this thread.

mi_collect

Eagerly free memory.

mi_expand

Try to re-allocate memory to newsize bytes in place.

mi_free

Free previously allocated memory.

mi_free_aligned

Alignment-aware deallocation: Like mi_free, but accepts the size and alignment as well.

mi_free_size

Size-aware deallocation: Like mi_free, but accepts the size and alignment as well.

mi_free_size_aligned

Layout-aware deallocation: Like mi_free, but accepts the size and alignment as well.

mi_good_size

Return the used allocation size.

mi_heap_calloc

Equivalent to mi_calloc, but allocates out of the specific heap instead of the default.

mi_heap_calloc_aligned

Equivalent to mi_calloc_aligned, but allocates out of the specific heap instead of the default.

mi_heap_calloc_aligned_at

Equivalent to mi_calloc_aligned_at, but allocates out of the specific heap instead of the default.

mi_heap_check_owned

Check safely if any pointer is part of a heap.

mi_heap_collect

Release outstanding resources in a specific heap.

mi_heap_contains_block

Does a heap contain a pointer to a previously allocated block?

mi_heap_delete

Delete a previously allocated heap.

mi_heap_destroy

Destroy a heap, freeing all its still allocated blocks.

mi_heap_get_backing

Get the backing heap.

mi_heap_get_default

Get the default heap that is used for mi_malloc et al.

mi_heap_malloc

Equivalent to mi_malloc, but allocates out of the specific heap instead of the default.

mi_heap_malloc_aligned

Equivalent to mi_malloc_aligned, but allocates out of the specific heap instead of the default.

mi_heap_malloc_aligned_at

Equivalent to mi_malloc_aligned_at, but allocates out of the specific heap instead of the default.

mi_heap_malloc_small

Equivalent to mi_malloc_small, but allocates out of the specific heap instead of the default.

mi_heap_mallocn

Equivalent to mi_mallocn, but allocates out of the specific heap instead of the default.

mi_heap_new

Create a new heap that can be used for allocation.

mi_heap_realloc

Equivalent to mi_realloc, but allocates out of the specific heap instead of the default.

mi_heap_realloc_aligned

Equivalent to mi_realloc_aligned, but allocates out of the specific heap instead of the default.

mi_heap_realloc_aligned_at

Equivalent to mi_realloc_aligned_at, but allocates out of the specific heap instead of the default.

mi_heap_reallocf

Equivalent to mi_reallocf, but allocates out of the specific heap instead of the default.

mi_heap_reallocn

Equivalent to mi_reallocn, but allocates out of the specific heap instead of the default.

mi_heap_realpath

Equivalent to mi_realpath, but allocates out of the specific heap instead of the default.

mi_heap_recalloc

Equivalent to mi_recalloc, but allocates out of the specific heap instead of the default.

mi_heap_recalloc_aligned

Equivalent to mi_recalloc_aligned, but allocates out of the specific heap instead of the default.

mi_heap_recalloc_aligned_at

Equivalent to mi_recalloc_aligned_at, but allocates out of the specific heap instead of the default.

mi_heap_rezalloc

Equivalent to mi_rezalloc, but allocates out of the specific heap instead of the default.

mi_heap_rezalloc_aligned

Equivalent to mi_rezalloc_aligned, but allocates out of the specific heap instead of the default.

mi_heap_rezalloc_aligned_at

Equivalent to mi_rezalloc_aligned_at, but allocates out of the specific heap instead of the default.

mi_heap_set_default

Set the default heap to use for mi_malloc et al.

mi_heap_strdup

Equivalent to mi_strdup, but allocates out of the specific heap instead of the default.

mi_heap_strndup

Equivalent to mi_strndup, but allocates out of the specific heap instead of the default.

mi_heap_visit_blocks

Visit all areas and blocks in heap.

mi_heap_zalloc

Equivalent to mi_zalloc, but allocates out of the specific heap instead of the default.

mi_heap_zalloc_aligned

Equivalent to mi_zalloc_aligned, but allocates out of the specific heap instead of the default.

mi_heap_zalloc_aligned_at

Equivalent to mi_zalloc_aligned_at, but allocates out of the specific heap instead of the default.

mi_is_in_heap_region

Returns true if this is a pointer into a memory region that has been reserved by the mimalloc heap.

mi_malloc

Allocate size bytes.

mi_malloc_aligned

Allocate size bytes aligned by alignment.

mi_malloc_aligned_at

Allocate size bytes aligned by alignment at a specified offset.

mi_malloc_small

Allocate an object of no more than MI_SMALL_SIZE_MAX bytes.

mi_mallocn

Allocate count items of size length each.

mi_option_get

Returns the value of the provided option.

mi_option_is_enabled

Returns true if the provided option is enabled.

mi_option_set

Set the option to the given value.

mi_option_set_default

If the given option has not yet been initialized with mi_option_set or mi_option_set_enabled, sets the option to the given value. If it has, this function does nothing.

mi_option_set_enabled

Enable or disable the given option.

mi_option_set_enabled_default

If the given option has not yet been initialized with mi_option_set or mi_option_set_enabled, enables or disables the option. If it has, this function does nothing.

mi_posix_memalign

Allocate size of bytes aligned by alignment and place the address of the allocated memory to ptr.

mi_process_info

Return process information (time and memory usage). All parameters are optional (nullable) out-params:

mi_process_init

Initialize the process.

mi_realloc

Re-allocate memory to newsize bytes.

mi_realloc_aligned

Re-allocate memory to newsize bytes, aligned by alignment.

mi_realloc_aligned_at

Re-allocate memory to newsize bytes aligned by alignment at a specified offset.

mi_reallocf

Re-allocate memory to newsize bytes.

mi_reallocn

Re-allocate memory to count elements of size bytes.

mi_realpath

Resolve a file path name, producing a C string which can be passed to mi_free.

mi_recalloc

Zero initialized re-allocation, following calloc paramater conventions.

mi_recalloc_aligned

Aligned version of mi_recalloc.

mi_recalloc_aligned_at

Offset-aligned version of mi_recalloc.

mi_register_deferred_free

Register a deferred free function.

mi_register_error

Register an error callback function.

mi_register_output

Register an output function.

mi_rezalloc

Zero initialized re-allocation.

mi_rezalloc_aligned

Aligned version of mi_rezalloc.

mi_rezalloc_aligned_at

Offset-aligned version of mi_rezalloc.

mi_stats_merge

Merge thread local statistics with the main statistics and reset.

mi_stats_print

Print the main statistics.

mi_stats_print_out

Print the main statistics.

mi_stats_reset

Reset statistics.

mi_strdup

Allocate and duplicate a nul-terminated C string.

mi_strndup

Allocate and duplicate a nul-terminated C string, up to n bytes.

mi_thread_done

Uninitialize mimalloc on a thread.

mi_thread_init

Initialize mimalloc on a thread.

mi_thread_stats_print_out

Print out heap statistics for this thread.

mi_usable_size

Return the available bytes in a memory block.

mi_version

Return the mimalloc version number.

mi_zalloc

Allocate zero-initialized size bytes.

mi_zalloc_aligned

Allocate size bytes aligned by alignment, initialized to zero.

mi_zalloc_aligned_at

Allocate size bytes aligned by alignment at a specified offset, zero-initialized.

mi_zalloc_small

Allocate an zero-initialized object of no more than MI_SMALL_SIZE_MAX bytes.

Type Definitions

mi_block_visit_fun

Visitor function passed to mi_heap_visit_blocks

mi_deferred_free_fun

Type of deferred free functions. Must be thread-safe.

mi_error_fun

Type of error callback functions. Must be thread-safe.

mi_option_t

Runtime options. All options are false by default.

mi_output_fun

An output callback. Must be thread-safe.