30#ifndef _SYS_VMEM_IMPL_USER_H
31#define _SYS_VMEM_IMPL_USER_H
57#define VMEM_STACK_DEPTH 20
88#define VS_SIZE(vsp) ((vsp)->vs_end - (vsp)->vs_start)
93#define VMEM_HASH_INDEX(a, s, q, m) \
94 ((((a) + ((a) >> (s)) + ((a) >> ((s) << 1))) >> (q)) & (m))
96#define VMEM_HASH(vmp, addr) \
97 (&(vmp)->vm_hash_table[VMEM_HASH_INDEX(addr, \
98 (vmp)->vm_hash_shift, (vmp)->vm_qshift, (vmp)->vm_hash_mask)])
100#define VMEM_NAMELEN 30
101#define VMEM_HASH_INITIAL 16
102#define VMEM_NQCACHE_MAX 16
103#define VMEM_FREELISTS (sizeof (void *) * 8)
159#define VM_UMFLAGS VM_KMFLAGS
u_int64_t hrtime_t
Definition sol_compat.h:47
pthread_mutex_t mutex_t
Definition sol_compat.h:45
unsigned long ulong_t
Definition sol_compat.h:49
pthread_t thread_t
Definition sol_compat.h:44
pthread_cond_t cond_t
Definition sol_compat.h:46
Definition vmem_impl_user.h:81
uintptr_t vs_end
Definition vmem_impl_user.h:83
vmem_seg_t * vs_kprev
Definition vmem_impl_user.h:85
uintptr_t vs_start
Definition vmem_impl_user.h:82
vmem_seg_t * vs_knext
Definition vmem_impl_user.h:84
Definition vmem_impl_user.h:105
uint64_t vk_populate_fail
Definition vmem_impl_user.h:117
uint64_t vk_mem_import
Definition vmem_impl_user.h:107
uint64_t vk_populate_wait
Definition vmem_impl_user.h:116
uint64_t vk_wait
Definition vmem_impl_user.h:112
uint32_t vk_source_id
Definition vmem_impl_user.h:109
uint64_t vk_contains_search
Definition vmem_impl_user.h:119
uint64_t vk_mem_total
Definition vmem_impl_user.h:108
uint64_t vk_fail
Definition vmem_impl_user.h:113
uint64_t vk_search
Definition vmem_impl_user.h:115
uint64_t vk_free
Definition vmem_impl_user.h:111
uint64_t vk_lookup
Definition vmem_impl_user.h:114
uint64_t vk_alloc
Definition vmem_impl_user.h:110
uint64_t vk_mem_inuse
Definition vmem_impl_user.h:106
uint64_t vk_contains
Definition vmem_impl_user.h:118
Definition vmem_impl_user.h:154
thread_t vmpl_thr
Definition vmem_impl_user.h:156
mutex_t vmpl_mutex
Definition vmem_impl_user.h:155
Definition vmem_impl_user.h:59
uintptr_t vs_stack[VMEM_STACK_DEPTH]
Definition vmem_impl_user.h:78
uint8_t vs_import
Definition vmem_impl_user.h:71
thread_t vs_thread
Definition vmem_impl_user.h:76
uint8_t vs_type
Definition vmem_impl_user.h:70
uintptr_t vs_end
Definition vmem_impl_user.h:64
vmem_seg_t * vs_anext
Definition vmem_impl_user.h:68
vmem_seg_t * vs_aprev
Definition vmem_impl_user.h:69
hrtime_t vs_timestamp
Definition vmem_impl_user.h:77
vmem_seg_t * vs_kprev
Definition vmem_impl_user.h:66
uint8_t vs_depth
Definition vmem_impl_user.h:72
uintptr_t vs_start
Definition vmem_impl_user.h:63
vmem_seg_t * vs_knext
Definition vmem_impl_user.h:65
Definition vmem_impl_user.h:122
vmem_seg_t * vm_segfree
Definition vmem_impl_user.h:137
vmem_kstat_t vm_kstat
Definition vmem_impl_user.h:147
ssize_t vm_nsegfree
Definition vmem_impl_user.h:136
vmem_free_t * vm_source_free
Definition vmem_impl_user.h:133
vmem_seg_t vm_seg0
Definition vmem_impl_user.h:142
uint32_t vm_mtbf
Definition vmem_impl_user.h:127
vmem_t * vm_next
Definition vmem_impl_user.h:135
size_t vm_qcache_max
Definition vmem_impl_user.h:131
size_t vm_quantum
Definition vmem_impl_user.h:130
size_t vm_hash_shift
Definition vmem_impl_user.h:140
cond_t vm_cv
Definition vmem_impl_user.h:124
char vm_name[VMEM_NAMELEN]
Definition vmem_impl_user.h:123
ulong_t vm_freemap
Definition vmem_impl_user.h:141
int vm_cflags
Definition vmem_impl_user.h:128
size_t vm_hash_mask
Definition vmem_impl_user.h:139
vmem_seg_t ** vm_hash_table
Definition vmem_impl_user.h:138
vmem_alloc_t * vm_source_alloc
Definition vmem_impl_user.h:132
int vm_qshift
Definition vmem_impl_user.h:129
vmem_t * vm_source
Definition vmem_impl_user.h:134
void * vm_qcache[VMEM_NQCACHE_MAX]
Definition vmem_impl_user.h:145
vmem_seg_t * vm_hash0[VMEM_HASH_INITIAL]
Definition vmem_impl_user.h:144
vmem_freelist_t vm_freelist[VMEM_FREELISTS+1]
Definition vmem_impl_user.h:146
mutex_t vm_lock
Definition vmem_impl_user.h:125
uint32_t vm_id
Definition vmem_impl_user.h:126
vmem_seg_t vm_rotor
Definition vmem_impl_user.h:143
void vmem_free_t(vmem_t *, void *, size_t)
Definition vmem.h:107
void * vmem_alloc_t(vmem_t *, size_t, int)
Definition vmem.h:106
#define VMEM_STACK_DEPTH
Definition vmem_impl_user.h:57
#define VMEM_NQCACHE_MAX
Definition vmem_impl_user.h:102
struct vmem_freelist vmem_freelist_t
struct vmem_kstat vmem_kstat_t
#define VMEM_HASH_INITIAL
Definition vmem_impl_user.h:101
struct vmem_populate_lock vmem_populate_lock_t
#define VMEM_FREELISTS
Definition vmem_impl_user.h:103
#define VMEM_NAMELEN
Definition vmem_impl_user.h:100