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>
This commit is contained in:
parent
a53e8b7202
commit
3e71981592
|
@ -555,11 +555,21 @@ static inline int64_t offset_into_cluster(BDRVQcow2State *s, int64_t offset)
|
||||||
return offset & (s->cluster_size - 1);
|
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)
|
static inline uint64_t size_to_clusters(BDRVQcow2State *s, uint64_t size)
|
||||||
{
|
{
|
||||||
return (size + (s->cluster_size - 1)) >> s->cluster_bits;
|
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)
|
static inline int64_t size_to_l1(BDRVQcow2State *s, int64_t size)
|
||||||
{
|
{
|
||||||
int shift = s->cluster_bits + s->l2_bits;
|
int shift = s->cluster_bits + s->l2_bits;
|
||||||
|
|
Loading…
Reference in New Issue