Lines Matching defs:block
88 struct block {
89 struct block *next, *prev;
93 * Marks that the block is currently in the aperture and has yet to be
98 * Marks that the block is currently fenced (being used by rendering)
103 /** Fence cookie for the block. */
127 struct block on_hardware;
132 struct block fenced;
137 struct block lru;
218 struct block *block;
416 * Allocate a memory manager block for the buffer.
424 struct block *block = (struct block *)calloc(sizeof *block, 1);
428 if (!block)
433 block->mem = mmAllocMem(bufmgr_fake->heap, sz, align_log2, 0);
434 if (!block->mem) {
435 free(block);
439 DRMINITLISTHEAD(block);
442 DRMLISTADDTAIL(block, &bufmgr_fake->lru);
444 block->virtual = (uint8_t *) bufmgr_fake->virtual +
445 block->mem->ofs - bufmgr_fake->low_offset;
446 block->bo = bo;
448 bo_fake->block = block;
456 free_block(drm_intel_bufmgr_fake *bufmgr_fake, struct block *block,
460 DBG("free block %p %08x %d %d\n", block, block->mem->ofs,
461 block->on_hardware, block->fenced);
463 if (!block)
466 bo_fake = (drm_intel_bo_fake *) block->bo;
472 memcpy(bo_fake->backing_store, block->virtual, block->bo->size);
477 if (block->on_hardware) {
478 block->bo = NULL;
479 } else if (block->fenced) {
480 block->bo = NULL;
483 DRMLISTDEL(block);
485 mmFreeMem(block->mem);
486 free(block);
538 struct block *block, *tmp;
542 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->lru) {
543 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) block->bo;
548 if (block->fence && max_fence && !FENCE_LTE(block->fence,
553 bo_fake->block = NULL;
555 free_block(bufmgr_fake, block, 0);
565 struct block *block, *tmp;
569 DRMLISTFOREACHSAFEREVERSE(block, tmp, &bufmgr_fake->lru) {
570 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) block->bo;
576 bo_fake->block = NULL;
578 free_block(bufmgr_fake, block, 0);
591 struct block *block, *tmp;
595 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->fenced) {
596 assert(block->fenced);
598 if (_fence_test(bufmgr_fake, block->fence)) {
600 block->fenced = 0;
602 if (!block->bo) {
604 block->mem->ofs, block->mem->size);
605 DRMLISTDEL(block);
606 mmFreeMem(block->mem);
607 free(block);
610 block->mem->ofs, block->mem->size);
611 DRMLISTDEL(block);
612 DRMLISTADDTAIL(block, &bufmgr_fake->lru);
621 block->mem->ofs, block->mem->size, block->fence,
634 struct block *block, *tmp;
636 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->on_hardware) {
637 DBG("Fence block %p (sz 0x%x ofs %x buf %p) with fence %d\n",
638 block, block->mem->size, block->mem->ofs, block->bo, fence);
639 block->fence = fence;
641 block->on_hardware = 0;
642 block->fenced = 1;
646 DRMLISTDEL(block);
647 DRMLISTADDTAIL(block, &bufmgr_fake->fenced);
660 assert(bo_fake->block == NULL);
746 if (bo_fake->block == NULL || !bo_fake->block->fenced)
749 _fence_wait_internal(bufmgr_fake, bo_fake->block->fence);
771 struct block *block, *tmp;
790 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->lru) {
791 assert(_fence_test(bufmgr_fake, block->fence));
792 set_dirty(block->bo);
927 if (bo_fake->block)
928 free_block(bufmgr_fake, bo_fake->block, 1);
1026 if (!bo_fake->block && !evict_and_alloc_block(bo)) {
1031 assert(bo_fake->block);
1035 bo_fake->block->fenced) {
1040 bo->virtual = bo_fake->block->virtual;
1049 if ((bo_fake->card_dirty == 1) && bo_fake->block) {
1050 if (bo_fake->block->fenced)
1055 bo_fake->block->virtual,
1056 bo_fake->block->bo->size);
1137 struct block *block, *tmp;
1142 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->on_hardware) {
1143 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) block->bo;
1145 block->on_hardware = 0;
1146 free_block(bufmgr_fake, block, 0);
1147 bo_fake->block = NULL;
1179 if (!bo_fake->block && !evict_and_alloc_block(bo)) {
1186 assert(bo_fake->block);
1187 assert(bo_fake->block->bo == &bo_fake->bo);
1189 bo->offset = bo_fake->block->mem->ofs;
1194 bo_fake->name, bo->size, bo_fake->block->mem->ofs);
1208 memcpy(bo_fake->block->virtual, bo_fake->backing_store,
1211 memset(bo_fake->block->virtual, 0, bo->size);
1216 bo_fake->block->fenced = 0;
1217 bo_fake->block->on_hardware = 1;
1218 DRMLISTDEL(bo_fake->block);
1219 DRMLISTADDTAIL(bo_fake->block, &bufmgr_fake->on_hardware);
1539 struct block *block, *tmp;
1558 DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->lru) {
1559 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) block->bo;
1563 free_block(bufmgr_fake, block, 0);
1564 bo_fake->block = NULL;