Home | History | Annotate | Download | only in block

Lines Matching refs:l2_table

161     uint64_t **l2_table)
169 *l2_table = seek_l2_table(s, l2_offset);
170 if (*l2_table != NULL) {
177 *l2_table = s->l2_cache + (min_index << s->l2_bits);
180 ret = bdrv_pread(bs->file, l2_offset, *l2_table,
234 uint64_t *l2_table;
250 l2_table = s->l2_cache + (min_index << s->l2_bits);
254 memset(l2_table, 0, s->l2_size * sizeof(uint64_t));
258 ret = bdrv_pread(bs->file, old_l2_offset, l2_table,
266 ret = bdrv_pwrite_sync(bs->file, l2_offset, l2_table,
284 *table = l2_table;
294 uint64_t *l2_table, uint64_t start, uint64_t mask)
297 uint64_t offset = be64_to_cpu(l2_table[0]) & ~mask;
303 if (offset + (uint64_t) i * cluster_size != (be64_to_cpu(l2_table[i]) & ~mask))
309 static int count_contiguous_free_clusters(uint64_t nb_clusters, uint64_t *l2_table)
313 while(nb_clusters-- && l2_table[i] == 0)
445 uint64_t l2_offset, *l2_table;
488 ret = l2_load(bs, l2_offset, &l2_table);
496 *cluster_offset = be64_to_cpu(l2_table[l2_index]);
501 c = count_contiguous_free_clusters(nb_clusters, &l2_table[l2_index]);
505 &l2_table[l2_index], 0, QCOW_OFLAG_COPIED);
538 uint64_t *l2_table = NULL;
557 ret = l2_load(bs, l2_offset, &l2_table);
564 ret = l2_allocate(bs, l1_index, &l2_table);
575 *new_l2_table = l2_table;
601 uint64_t l2_offset, *l2_table;
605 ret = get_cluster_table(bs, offset, &l2_table, &l2_offset, &l2_index);
610 cluster_offset = be64_to_cpu(l2_table[l2_index]);
633 l2_table[l2_index] = cpu_to_be64(cluster_offset);
636 l2_table + l2_index,
648 static int write_l2_entries(BlockDriverState *bs, uint64_t *l2_table,
659 &l2_table[l2_start_index], len);
671 uint64_t *old_cluster, start_sect, l2_offset, *l2_table;
696 ret = get_cluster_table(bs, m->offset, &l2_table, &l2_offset, &l2_index);
708 if(l2_table[l2_index + i] != 0)
709 old_cluster[j++] = l2_table[l2_index + i];
711 l2_table[l2_index + i] = cpu_to_be64((cluster_offset +
715 ret = write_l2_entries(bs, l2_table, l2_offset, l2_index, m->nb_clusters);
755 uint64_t l2_offset, *l2_table;
760 ret = get_cluster_table(bs, offset, &l2_table, &l2_offset, &l2_index);
769 cluster_offset = be64_to_cpu(l2_table[l2_index]);
775 &l2_table[l2_index], 0, 0);
793 &l2_table[l2_index], i, 0);
794 if ((i >= nb_clusters) || be64_to_cpu(l2_table[l2_index + i])) {
799 &l2_table[l2_index + i]);
804 cluster_offset = be64_to_cpu(l2_table[l2_index + i]);