Lines Matching full:cluster
125 def write_features(cluster, offset, data_file_name): argument
129 struct.pack_into(f">II{padded_name_len}s", cluster, offset,
148 struct.pack_into(">I", cluster, offset, QCOW2_FEATURE_NAME_TABLE)
149 struct.pack_into(">I", cluster, offset + 4, len(qcow2_features) * 48)
152 struct.pack_into(">BB46s", cluster, offset,
172 sys.exit("[Error] The image size is too large. Try using a larger cluster size.")
194 cluster = os.pread(fd, cluster_size, cluster_size * idx)
195 # If the last cluster is smaller than cluster_size pad it with zeroes
196 if len(cluster) < cluster_size:
197 cluster += bytes(cluster_size - len(cluster))
198 # If a cluster has non-zero data then it must be allocated
200 if cluster != zero_cluster:
267 cluster = bytearray(cluster_size)
268 struct.pack_into(">4sIQIIQIIQQIIQQQQII", cluster, 0,
289 write_features(cluster, hdr_length, data_file_name)
291 sys.stdout.buffer.write(cluster)
297 cluster = bytearray(cluster_size)
301 struct.pack_into(">Q", cluster, idx * 8, cur_offset)
303 sys.stdout.buffer.write(cluster)
306 … remaining_refcount_block_entries = total_allocated_clusters # One entry for each allocated cluster
308 cluster = bytearray(cluster_size)
315 struct.pack_into(">Q", cluster, idx * 8, 1)
317 struct.pack_into(">L", cluster, idx * 4, 1)
319 struct.pack_into(">H", cluster, idx * 2, 1)
321 cluster[idx] = 1
323 cluster[idx // 2] |= 1 << ((idx % 2) * 4)
325 cluster[idx // 4] |= 1 << ((idx % 4) * 2)
327 cluster[idx // 8] |= 1 << (idx % 8)
328 sys.stdout.buffer.write(cluster)
333 cluster = bytearray(cluster_size)
337 struct.pack_into(">Q", cluster, idx * 8, cur_offset | QCOW_OFLAG_COPIED)
339 sys.stdout.buffer.write(cluster)
347 cluster = bytearray(cluster_size)
352 struct.pack_into(">Q", cluster, idx * 8, cur_offset | QCOW_OFLAG_COPIED)
355 … struct.pack_into(">Q", cluster, idx * 8, (l2_idx * cluster_size) | QCOW_OFLAG_COPIED)
356 sys.stdout.buffer.write(cluster)
361 cluster = os.pread(fd, cluster_size, cluster_size * idx)
362 # If the last cluster is smaller than cluster_size pad it with zeroes
363 if len(cluster) < cluster_size:
364 cluster += bytes(cluster_size - len(cluster))
365 sys.stdout.buffer.write(cluster)
389 help=f"qcow2 cluster size (default: {QCOW2_DEFAULT_CLUSTER_SIZE})",
428 sys.exit("[Error] External data files require a larger cluster size")