Lines Matching defs:mgr

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