Lines Matching refs:smm_instance
144 } smm_instance; variable
149 memcpy(&smm_instance.cbs, evs, sizeof(struct smm_events)); in smm_init()
151 smm_instance.page_sz = (unsigned long)sysconf(_SC_PAGESIZE); in smm_init()
152 LL_INIT(&smm_instance.groups); in smm_init()
161 while(!LL_IS_EMPTY(&smm_instance.groups)) { in smm_deinit()
162 LL_DEQUEUE(grp, &smm_instance.groups, link); in smm_deinit()
170 smm_instance.cbs.ctx = ctx; in smm_setctx()
181 grp->size = smm_instance.page_sz; in smm_create()
188 LL_ENQUEUE(&smm_instance.groups, grp, link); in smm_create()
201 rgrp->size = ROUND_UP(sz, smm_instance.page_sz); in smm_resize()
237 LL_REMOVE(&smm_instance.groups, dgrp, link); in smm_destroy()
261 if(smm_instance.cbs.init_buffer != NULL) { in smm_acquire()
262 if(smm_instance.cbs.init_buffer(smm_instance.cbs.ctx, &buf->props)) { in smm_acquire()
415 if(smm_instance.active == NULL) { in get_from_pool()
417 smm_instance.active = alloc_pool(); in get_from_pool()
418 smm_instance.statistics.active_used = 0; in get_from_pool()
421 if(smm_instance.active == NULL) { in get_from_pool()
426 LL_FOREACH(buf, &smm_instance.active->allocd, pool) { in get_from_pool()
434 if((buf != LL_LAST(&smm_instance.active->allocd)) && in get_from_pool()
463 buf = alloc_buffer(last, smm_instance.active->props.size); in get_from_pool()
470 ret = ftruncate(smm_instance.active->props.fd, in get_from_pool()
471 smm_instance.active->props.size + buf_sz); in get_from_pool()
479 smm_instance.active->props.size += buf_sz; in get_from_pool()
480 smm_instance.active->map_outdated = true; in get_from_pool()
483 if(!(smm_instance.active->props.size - buf_sz)) { in get_from_pool()
485 if((smm_instance.cbs.new_pool != NULL) && in get_from_pool()
486 (smm_instance.cbs.new_pool(smm_instance.cbs.ctx, in get_from_pool()
487 &smm_instance.active->props))) { in get_from_pool()
489 free_pool(smm_instance.active); in get_from_pool()
490 smm_instance.active = NULL; in get_from_pool()
496 if(smm_instance.cbs.expand_pool != NULL) { in get_from_pool()
497 smm_instance.cbs.expand_pool(smm_instance.cbs.ctx, in get_from_pool()
498 &smm_instance.active->props); in get_from_pool()
511 if(smm_instance.cbs.new_buffer != NULL) { in get_from_pool()
512 if(smm_instance.cbs.new_buffer(smm_instance.cbs.ctx, &buf->props)) { in get_from_pool()
521 smm_instance.statistics.active_used += grp->size; in get_from_pool()
536 if(smm_instance.cbs.free_buffer != NULL) { in return_to_pool()
537 smm_instance.cbs.free_buffer(smm_instance.cbs.ctx, &buf->props); in return_to_pool()
549 if(smm_instance.active == pool) { in return_to_pool()
550 smm_instance.statistics.active_used -= calc_buffer_size(buf); in return_to_pool()
571 if(smm_instance.cbs.free_pool != NULL) { in return_to_pool()
572 smm_instance.cbs.free_pool(smm_instance.cbs.ctx, &pool->props); in return_to_pool()
576 if(smm_instance.active == pool) { in return_to_pool()
577 smm_instance.active = NULL; in return_to_pool()
643 smm_instance.active, in alloc_buffer()
654 LL_ENQUEUE(&smm_instance.active->allocd, buf, pool); in alloc_buffer()
657 LL_INSERT_AFTER(&smm_instance.active->allocd, last, buf, pool); in alloc_buffer()