Home | History | Annotate | Download | only in ext2fs

Lines Matching refs:img

13  * [root]# qemu-nbd -c /dev/nbd0 image.img
89 static int qcow2_read_l1_table(struct ext2_qcow2_image *img)
91 int fd = img->fd;
92 size_t size, l1_size = img->l1_size * sizeof(blk64_t);
100 if (ext2fs_llseek(fd, img->l1_offset, SEEK_SET) < 0) {
111 img->l1_table = table;
116 static int qcow2_read_l2_table(struct ext2_qcow2_image *img,
119 int fd = img->fd;
127 size = read(fd, *l2_table, img->cluster_size);
128 if (size != img->cluster_size)
162 struct ext2_qcow2_image img;
173 img.fd = qcow2_fd;
174 img.hdr = hdr;
175 img.l2_cache = NULL;
176 img.l1_table = NULL;
177 img.cluster_bits = ext2fs_be32_to_cpu(hdr->cluster_bits);
178 img.cluster_size = 1 << img.cluster_bits;
179 img.l1_size = ext2fs_be32_to_cpu(hdr->l1_size);
180 img.l1_offset = ext2fs_be64_to_cpu(hdr->l1_table_offset);
181 img.l2_size = 1 << (img.cluster_bits - 3);
182 img.image_size = ext2fs_be64_to_cpu(hdr->size);
185 ret = ext2fs_get_memzero(img.cluster_size, &l2_table);
189 ret = ext2fs_get_memzero(1 << img.cluster_bits, &copy_buf);
198 ret = qcow2_read_l1_table(&img);
202 l1_table = img.l1_table;
204 for (l1_index = 0; l1_index < img.l1_size; l1_index++) {
210 if ((offset > img.image_size) ||
219 ret = qcow2_read_l2_table(&img, offset, &l2_table);
224 for (l2_index = 0; l2_index < img.l2_size; l2_index++) {
231 off_out = (l1_index * img.l2_size) +
233 off_out <<= img.cluster_bits;
235 off_out, copy_buf, img.cluster_size);
242 if (ext2fs_llseek(raw_fd, img.image_size - 1, SEEK_SET) < 0) {
257 if (img.l1_table)
258 ext2fs_free_mem(&img.l1_table);