diff options
| author | Alberto Garcia <berto@igalia.com> | 2020-07-10 18:12:53 +0200 |
|---|---|---|
| committer | Max Reitz <mreitz@redhat.com> | 2020-08-25 08:33:20 +0200 |
| commit | 3e71981592a9f9c52833887f5675b3154d23eec8 (patch) | |
| tree | 42ef439eb172a3e6f1fe17857c7323894257d92c | |
| parent | a53e8b7202dd941c619a57a640389560214d1f70 (diff) | |
| download | focaccia-qemu-3e71981592a9f9c52833887f5675b3154d23eec8.tar.gz focaccia-qemu-3e71981592a9f9c52833887f5675b3154d23eec8.zip | |
qcow2: Add offset_into_subcluster() and size_to_subclusters()
Like offset_into_cluster() and size_to_clusters(), but for subclusters. Signed-off-by: Alberto Garcia <berto@igalia.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-Id: <3cc2390dcdef3d234d47c741b708bd8734490862.1594396418.git.berto@igalia.com> Signed-off-by: Max Reitz <mreitz@redhat.com>
| -rw-r--r-- | block/qcow2.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/block/qcow2.h b/block/qcow2.h index 2503374677..4fe31adfd3 100644 --- a/block/qcow2.h +++ b/block/qcow2.h @@ -555,11 +555,21 @@ static inline int64_t offset_into_cluster(BDRVQcow2State *s, int64_t offset) return offset & (s->cluster_size - 1); } +static inline int64_t offset_into_subcluster(BDRVQcow2State *s, int64_t offset) +{ + return offset & (s->subcluster_size - 1); +} + static inline uint64_t size_to_clusters(BDRVQcow2State *s, uint64_t size) { return (size + (s->cluster_size - 1)) >> s->cluster_bits; } +static inline uint64_t size_to_subclusters(BDRVQcow2State *s, uint64_t size) +{ + return (size + (s->subcluster_size - 1)) >> s->subcluster_bits; +} + static inline int64_t size_to_l1(BDRVQcow2State *s, int64_t size) { int shift = s->cluster_bits + s->l2_bits; |