mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 09:43:56 -06:00
HBitmap: Introduce "meta" bitmap to track bit changes
Upon each bit toggle, the corresponding bit in the meta bitmap will be set. Signed-off-by: Fam Zheng <famz@redhat.com> [Amended text inline. --js] Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: John Snow <jsnow@redhat.com> Message-id: 1476395910-8697-3-git-send-email-jsnow@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
dc162c8e4f
commit
07ac4cdb57
2 changed files with 75 additions and 15 deletions
|
@ -178,6 +178,27 @@ void hbitmap_iter_init(HBitmapIter *hbi, const HBitmap *hb, uint64_t first);
|
|||
*/
|
||||
unsigned long hbitmap_iter_skip_words(HBitmapIter *hbi);
|
||||
|
||||
/* hbitmap_create_meta:
|
||||
* Create a "meta" hbitmap to track dirtiness of the bits in this HBitmap.
|
||||
* The caller owns the created bitmap and must call hbitmap_free_meta(hb) to
|
||||
* free it.
|
||||
*
|
||||
* Currently, we only guarantee that if a bit in the hbitmap is changed it
|
||||
* will be reflected in the meta bitmap, but we do not yet guarantee the
|
||||
* opposite.
|
||||
*
|
||||
* @hb: The HBitmap to operate on.
|
||||
* @chunk_size: How many bits in @hb does one bit in the meta track.
|
||||
*/
|
||||
HBitmap *hbitmap_create_meta(HBitmap *hb, int chunk_size);
|
||||
|
||||
/* hbitmap_free_meta:
|
||||
* Free the meta bitmap of @hb.
|
||||
*
|
||||
* @hb: The HBitmap whose meta bitmap should be freed.
|
||||
*/
|
||||
void hbitmap_free_meta(HBitmap *hb);
|
||||
|
||||
/**
|
||||
* hbitmap_iter_next:
|
||||
* @hbi: HBitmapIter to operate on.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue