#include <umem_impl.h>
#include "misc.h"
Go to the source code of this file.
| #define UMEM_REAP_ACTIVE 0x00000002 /* update thread is reaping */ |
| #define UMEM_REAP_ADDING 0x00000001 /* umem_reap() is active */ |
| #define UMEM_REAP_DONE 0x00000000 /* inactive */ |
| void* _umem_alloc |
( |
size_t |
size, |
|
|
int |
umflags |
|
) |
| |
References _umem_cache_alloc(), ASSERT, umem_cache::cache_flags, UMEM_ALIGN_SHIFT, UMEM_BUFTAG, umem_init(), UMEM_REDZONE_BYTE, UMEM_SIZE_ENCODE, UMEM_VMFLAGS, and vmem_alloc().
Referenced by _umem_zalloc(), and malloc().
References atomic_add_64, umem_cache::cache_alloc_fail, umem_cache::cache_constructor, umem_cache::cache_cpu_mask, umem_cache::cache_empty, umem_cache::cache_flags, umem_cache::cache_full, umem_cache::cache_private, umem_cpu_cache::cc_alloc, umem_cpu_cache::cc_flags, umem_cpu_cache::cc_loaded, umem_cpu_cache::cc_lock, umem_cpu_cache::cc_magsize, umem_cpu_cache::cc_ploaded, umem_cpu_cache::cc_prounds, umem_cpu_cache::cc_rounds, CPU, umem_magazine::mag_round, mutex_lock, mutex_unlock, UMEM_CPU_CACHE, and UMEM_DEFAULT.
Referenced by _umem_alloc(), _umem_cache_free(), _umem_zalloc(), and vmem_alloc().
| void _umem_cache_free |
( |
umem_cache_t * |
cache, |
|
|
void * |
buffer |
|
) |
| |
References _umem_cache_alloc(), _umem_cache_free(), umem_cache::cache_cpu_mask, umem_cache::cache_destructor, umem_cache::cache_empty, umem_cache::cache_flags, umem_cache::cache_full, umem_cache::cache_magtype, umem_cache::cache_private, umem_cpu_cache::cc_flags, umem_cpu_cache::cc_free, umem_cpu_cache::cc_loaded, umem_cpu_cache::cc_lock, umem_cpu_cache::cc_magsize, umem_cpu_cache::cc_ploaded, umem_cpu_cache::cc_prounds, umem_cpu_cache::cc_rounds, CPU, umem_magazine::mag_round, umem_magtype::mt_cache, umem_magtype::mt_magsize, mutex_lock, mutex_unlock, UMEM_CPU_CACHE, and UMEM_DEFAULT.
Referenced by _umem_cache_free(), _umem_free(), and vmem_free().
| void _umem_free |
( |
void * |
buf, |
|
|
size_t |
size |
|
) |
| |
References _umem_cache_free(), umem_buftag::bt_redzone, umem_cache::cache_flags, UMEM_ALIGN_SHIFT, UMEM_BUFTAG, UMEM_FREE_PATTERN, UMEM_REDZONE_BYTE, UMEM_REDZONE_PATTERN, UMEM_SIZE_ENCODE, UMEM_SIZE_VALID, UMERR_BADSIZE, UMERR_DUPFREE, UMERR_REDZONE, and vmem_free().
| void* _umem_zalloc |
( |
size_t |
size, |
|
|
int |
umflags |
|
) |
| |
References ASSERT, umem_cache::cache_buftotal, umem_cache::cache_chunksize, umem_cache::cache_depot_contention, umem_cache::cache_depot_contention_prev, umem_cache::cache_depot_lock, umem_cache::cache_flags, umem_cache::cache_hash_mask, umem_cache::cache_lock, umem_cache::cache_magtype, umem_magtype::mt_maxbuf, MUTEX_HELD, mutex_lock, mutex_unlock, umem_cache_lock, umem_depot_contention, UMEM_HASH_INITIAL, UMU_HASH_RESCALE, and UMU_MAGAZINE_RESIZE.
| int umem_create_update_thread |
( |
void |
| ) |
|
| void umem_forkhandler_init |
( |
void |
| ) |
|
| int umem_get_max_ncpus |
( |
void |
| ) |
|
References _cond_wait(), ASSERT, cond_broadcast, umem_cpu::cpu_cache_offset, umem_cpu::cpu_number, CPUHINT_MAX, issetugid, log_message(), mutex_lock, mutex_unlock, NANOSEC, pagesize, thr_self, UMEM_ALIGN, umem_cache_applyall(), UMEM_CACHE_SIZE, umem_content_log_size, UMEM_CPU_CACHE_SIZE, umem_failure_log_size, umem_flags, umem_get_max_ncpus(), umem_init_cv, umem_init_env_ready, umem_init_lock, umem_init_thr, umem_logging, umem_max_ncpus, umem_maxverify, umem_minfirewall, umem_mtbf, umem_panic(), umem_process_envvars(), UMEM_READY, umem_ready, UMEM_READY_INIT_FAILED, UMEM_READY_INITING, UMEM_READY_STARTUP, umem_reap_next, umem_setup_envvars(), umem_slab_log_size, umem_transaction_log_size, umem_update_next, UMF_AUDIT, VM_NOSLEEP, vmem::vm_quantum, vmem_alloc(), vmem_create(), vmem_free(), vmem_heap_arena(), and vmem_no_debug().
Referenced by _umem_alloc(), _umem_alloc_align(), memalign(), umem_cache_create(), and vmem_heap_arena().
| void umem_process_envvars |
( |
void |
| ) |
|
| void umem_process_updates |
( |
void |
| ) |
|
References ASSERT, umem_cache::cache_uflags, umem_cache::cache_unext, umem_cache::cache_uprev, cond_broadcast, MUTEX_HELD, mutex_lock, mutex_unlock, umem_update_cv, umem_update_lock, UMU_ACTIVE, UMU_HASH_RESCALE, UMU_MAGAZINE_RESIZE, UMU_NOTIFY, and UMU_REAP.
| void umem_setup_envvars |
( |
int |
| ) |
|
| void umem_type_init |
( |
caddr_t |
, |
|
|
size_t |
, |
|
|
size_t |
|
|
) |
| |
| size_t umem_content_log_size |
| size_t umem_content_maxsave |
| uint32_t umem_depot_contention |
| size_t umem_failure_log_size |
| size_t umem_lite_maxalign |
| uint32_t umem_reap_interval |
| volatile uint32_t umem_reaping |
| size_t umem_slab_log_size |
| uint32_t umem_stack_depth |
| size_t umem_transaction_log_size |
| uint32_t umem_update_interval |
| struct timeval umem_update_next |