Lines Matching refs:mgr
40 struct pb_cache *mgr = entry->mgr; in destroy_buffer_locked() local
46 assert(mgr->num_buffers); in destroy_buffer_locked()
47 --mgr->num_buffers; in destroy_buffer_locked()
48 mgr->cache_size -= buf->size; in destroy_buffer_locked()
50 mgr->destroy_buffer(mgr->winsys, buf); in destroy_buffer_locked()
85 struct pb_cache *mgr = entry->mgr; in pb_cache_add_buffer() local
86 struct list_head *cache = &mgr->buckets[entry->bucket_index]; in pb_cache_add_buffer()
90 simple_mtx_lock(&mgr->mutex); in pb_cache_add_buffer()
95 for (i = 0; i < mgr->num_heaps; i++) in pb_cache_add_buffer()
96 release_expired_buffers_locked(&mgr->buckets[i], current_time); in pb_cache_add_buffer()
99 if (mgr->cache_size + buf->size > mgr->max_cache_size) { in pb_cache_add_buffer()
100 mgr->destroy_buffer(mgr->winsys, buf); in pb_cache_add_buffer()
101 simple_mtx_unlock(&mgr->mutex); in pb_cache_add_buffer()
106 entry->end = entry->start + mgr->usecs; in pb_cache_add_buffer()
108 ++mgr->num_buffers; in pb_cache_add_buffer()
109 mgr->cache_size += buf->size; in pb_cache_add_buffer()
110 simple_mtx_unlock(&mgr->mutex); in pb_cache_add_buffer()
122 struct pb_cache *mgr = entry->mgr; in pb_cache_is_buffer_compat() local
130 buf->size > (unsigned) (mgr->size_factor * size)) in pb_cache_is_buffer_compat()
133 if (usage & mgr->bypass_usage) in pb_cache_is_buffer_compat()
139 return mgr->can_reclaim(mgr->winsys, buf) ? 1 : -1; in pb_cache_is_buffer_compat()
147 pb_cache_reclaim_buffer(struct pb_cache *mgr, pb_size size, in pb_cache_reclaim_buffer() argument
157 assert(bucket_index < mgr->num_heaps); in pb_cache_reclaim_buffer()
158 struct list_head *cache = &mgr->buckets[bucket_index]; in pb_cache_reclaim_buffer()
160 simple_mtx_lock(&mgr->mutex); in pb_cache_reclaim_buffer()
210 mgr->cache_size -= buf->size; in pb_cache_reclaim_buffer()
212 --mgr->num_buffers; in pb_cache_reclaim_buffer()
213 simple_mtx_unlock(&mgr->mutex); in pb_cache_reclaim_buffer()
219 simple_mtx_unlock(&mgr->mutex); in pb_cache_reclaim_buffer()
227 pb_cache_release_all_buffers(struct pb_cache *mgr) in pb_cache_release_all_buffers() argument
233 simple_mtx_lock(&mgr->mutex); in pb_cache_release_all_buffers()
234 for (i = 0; i < mgr->num_heaps; i++) { in pb_cache_release_all_buffers()
235 struct list_head *cache = &mgr->buckets[i]; in pb_cache_release_all_buffers()
246 simple_mtx_unlock(&mgr->mutex); in pb_cache_release_all_buffers()
250 pb_cache_init_entry(struct pb_cache *mgr, struct pb_cache_entry *entry, in pb_cache_init_entry() argument
253 assert(bucket_index < mgr->num_heaps); in pb_cache_init_entry()
257 entry->mgr = mgr; in pb_cache_init_entry()
280 pb_cache_init(struct pb_cache *mgr, uint num_heaps, in pb_cache_init() argument
289 mgr->buckets = CALLOC(num_heaps, sizeof(struct list_head)); in pb_cache_init()
290 if (!mgr->buckets) in pb_cache_init()
294 list_inithead(&mgr->buckets[i]); in pb_cache_init()
296 (void) simple_mtx_init(&mgr->mutex, mtx_plain); in pb_cache_init()
297 mgr->winsys = winsys; in pb_cache_init()
298 mgr->cache_size = 0; in pb_cache_init()
299 mgr->max_cache_size = maximum_cache_size; in pb_cache_init()
300 mgr->num_heaps = num_heaps; in pb_cache_init()
301 mgr->usecs = usecs; in pb_cache_init()
302 mgr->num_buffers = 0; in pb_cache_init()
303 mgr->bypass_usage = bypass_usage; in pb_cache_init()
304 mgr->size_factor = size_factor; in pb_cache_init()
305 mgr->destroy_buffer = destroy_buffer; in pb_cache_init()
306 mgr->can_reclaim = can_reclaim; in pb_cache_init()
313 pb_cache_deinit(struct pb_cache *mgr) in pb_cache_deinit() argument
315 pb_cache_release_all_buffers(mgr); in pb_cache_deinit()
316 simple_mtx_destroy(&mgr->mutex); in pb_cache_deinit()
317 FREE(mgr->buckets); in pb_cache_deinit()
318 mgr->buckets = NULL; in pb_cache_deinit()