• Home
  • Raw
  • Download

Lines Matching refs:chunks

60    struct zink_sparse_backing_chunk *chunks;  member
339 uint32_t cur_num_pages = backing->chunks[idx].end - backing->chunks[idx].begin; in sparse_backing_alloc()
360 best_backing->chunks = CALLOC(best_backing->max_chunks, in sparse_backing_alloc()
361 sizeof(*best_backing->chunks)); in sparse_backing_alloc()
362 if (!best_backing->chunks) { in sparse_backing_alloc()
377 FREE(best_backing->chunks); in sparse_backing_alloc()
387 best_backing->chunks[0].begin = 0; in sparse_backing_alloc()
388 best_backing->chunks[0].end = pages; in sparse_backing_alloc()
398 *pstart_page = best_backing->chunks[best_idx].begin; in sparse_backing_alloc()
399 best_backing->chunks[best_idx].begin += *pnum_pages; in sparse_backing_alloc()
401 if (best_backing->chunks[best_idx].begin >= best_backing->chunks[best_idx].end) { in sparse_backing_alloc()
402 memmove(&best_backing->chunks[best_idx], &best_backing->chunks[best_idx + 1], in sparse_backing_alloc()
403 sizeof(*best_backing->chunks) * (best_backing->num_chunks - best_idx - 1)); in sparse_backing_alloc()
418 FREE(backing->chunks); in sparse_free_backing_buffer()
439 if (backing->chunks[mid].begin >= start_page) in sparse_backing_free()
445 assert(low >= backing->num_chunks || end_page <= backing->chunks[low].begin); in sparse_backing_free()
446 assert(low == 0 || backing->chunks[low - 1].end <= start_page); in sparse_backing_free()
448 if (low > 0 && backing->chunks[low - 1].end == start_page) { in sparse_backing_free()
449 backing->chunks[low - 1].end = end_page; in sparse_backing_free()
451 if (low < backing->num_chunks && end_page == backing->chunks[low].begin) { in sparse_backing_free()
452 backing->chunks[low - 1].end = backing->chunks[low].end; in sparse_backing_free()
453 memmove(&backing->chunks[low], &backing->chunks[low + 1], in sparse_backing_free()
454 sizeof(*backing->chunks) * (backing->num_chunks - low - 1)); in sparse_backing_free()
457 } else if (low < backing->num_chunks && end_page == backing->chunks[low].begin) { in sparse_backing_free()
458 backing->chunks[low].begin = start_page; in sparse_backing_free()
463 REALLOC(backing->chunks, in sparse_backing_free()
464 sizeof(*backing->chunks) * backing->max_chunks, in sparse_backing_free()
465 sizeof(*backing->chunks) * new_max_chunks); in sparse_backing_free()
470 backing->chunks = new_chunks; in sparse_backing_free()
473 memmove(&backing->chunks[low + 1], &backing->chunks[low], in sparse_backing_free()
474 sizeof(*backing->chunks) * (backing->num_chunks - low)); in sparse_backing_free()
475 backing->chunks[low].begin = start_page; in sparse_backing_free()
476 backing->chunks[low].end = end_page; in sparse_backing_free()
480 if (backing->num_chunks == 1 && backing->chunks[0].begin == 0 && in sparse_backing_free()
481 backing->chunks[0].end == backing->bo->base.size / ZINK_SPARSE_BUFFER_PAGE_SIZE) in sparse_backing_free()