Lines Matching refs:mgr

89    struct pb_slab_manager *mgr;
175 pb_slab_manager(struct pb_manager *mgr)
177 assert(mgr);
178 return (struct pb_slab_manager *)mgr;
183 pb_slab_range_manager(struct pb_manager *mgr)
185 assert(mgr);
186 return (struct pb_slab_range_manager *)mgr;
199 struct pb_slab_manager *mgr = slab->mgr;
202 pipe_mutex_lock(mgr->mutex);
213 LIST_ADDTAIL(&slab->head, &mgr->slabs);
224 pipe_mutex_unlock(mgr->mutex);
300 pb_slab_create(struct pb_slab_manager *mgr)
312 slab->bo = mgr->provider->create_buffer(mgr->provider, mgr->slabSize, &mgr->desc);
329 numBuffers = slab->bo->size / mgr->bufSize;
341 slab->mgr = mgr;
346 buf->base.size = mgr->bufSize;
351 buf->start = i* mgr->bufSize;
360 LIST_ADDTAIL(&slab->head, &mgr->slabs);
377 struct pb_slab_manager *mgr = pb_slab_manager(_mgr);
383 assert(size <= mgr->bufSize);
384 if(size > mgr->bufSize)
388 assert(pb_check_alignment(desc->alignment, mgr->desc.alignment));
389 if(!pb_check_alignment(desc->alignment, mgr->desc.alignment))
391 assert(pb_check_alignment(desc->alignment, mgr->bufSize));
392 if(!pb_check_alignment(desc->alignment, mgr->bufSize))
395 assert(pb_check_usage(desc->usage, mgr->desc.usage));
396 if(!pb_check_usage(desc->usage, mgr->desc.usage))
399 pipe_mutex_lock(mgr->mutex);
402 if (mgr->slabs.next == &mgr->slabs) {
403 (void) pb_slab_create(mgr);
404 if (mgr->slabs.next == &mgr->slabs) {
405 pipe_mutex_unlock(mgr->mutex);
411 list = mgr->slabs.next;
421 pipe_mutex_unlock(mgr->mutex);
435 struct pb_slab_manager *mgr = pb_slab_manager(_mgr);
437 assert(mgr->provider->flush);
438 if(mgr->provider->flush)
439 mgr->provider->flush(mgr->provider);
446 struct pb_slab_manager *mgr = pb_slab_manager(_mgr);
449 FREE(mgr);
459 struct pb_slab_manager *mgr;
461 mgr = CALLOC_STRUCT(pb_slab_manager);
462 if (!mgr)
465 mgr->base.destroy = pb_slab_manager_destroy;
466 mgr->base.create_buffer = pb_slab_manager_create_buffer;
467 mgr->base.flush = pb_slab_manager_flush;
469 mgr->provider = provider;
470 mgr->bufSize = bufSize;
471 mgr->slabSize = slabSize;
472 mgr->desc = *desc;
474 LIST_INITHEAD(&mgr->slabs);
476 pipe_mutex_init(mgr->mutex);
478 return &mgr->base;
487 struct pb_slab_range_manager *mgr = pb_slab_range_manager(_mgr);
495 bufSize = mgr->minBufSize;
496 for (i = 0; i < mgr->numBuckets; ++i) {
498 return mgr->buckets[i]->create_buffer(mgr->buckets[i], size, desc);
503 return mgr->provider->create_buffer(mgr->provider, size, desc);
510 struct pb_slab_range_manager *mgr = pb_slab_range_manager(_mgr);
514 assert(mgr->provider->flush);
515 if(mgr->provider->flush)
516 mgr->provider->flush(mgr->provider);
523 struct pb_slab_range_manager *mgr = pb_slab_range_manager(_mgr);
526 for (i = 0; i < mgr->numBuckets; ++i)
527 mgr->buckets[i]->destroy(mgr->buckets[i]);
528 FREE(mgr->buckets);
529 FREE(mgr->bucketSizes);
530 FREE(mgr);
541 struct pb_slab_range_manager *mgr;
548 mgr = CALLOC_STRUCT(pb_slab_range_manager);
549 if (!mgr)
552 mgr->base.destroy = pb_slab_range_manager_destroy;
553 mgr->base.create_buffer = pb_slab_range_manager_create_buffer;
554 mgr->base.flush = pb_slab_range_manager_flush;
556 mgr->provider = provider;
557 mgr->minBufSize = minBufSize;
558 mgr->maxBufSize = maxBufSize;
560 mgr->numBuckets = 1;
564 ++mgr->numBuckets;
567 mgr->buckets = CALLOC(mgr->numBuckets, sizeof(*mgr->buckets));
568 if (!mgr->buckets)
572 for (i = 0; i < mgr->numBuckets; ++i) {
573 mgr->buckets[i] = pb_slab_manager_create(provider, bufSize, slabSize, desc);
574 if(!mgr->buckets[i])
579 return &mgr->base;
582 for (i = 0; i < mgr->numBuckets; ++i)
583 if(mgr->buckets[i])
584 mgr->buckets[i]->destroy(mgr->buckets[i]);
585 FREE(mgr->buckets);
587 FREE(mgr);