diff options
author | Joe Thornber <ejt@redhat.com> | 2016-10-03 14:15:02 -0400 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2017-02-16 13:12:45 -0500 |
commit | 6fe28dbf05e329ce136f38219d95a1826ceafebd (patch) | |
tree | e5619c3b907f006f72257fc74eccb941e1ae646b /drivers/md/persistent-data/dm-bitset.h | |
parent | 9f9ef0657d53d988dc07b096052b3dd07d6e3c46 (diff) | |
download | talos-obmc-linux-6fe28dbf05e329ce136f38219d95a1826ceafebd.tar.gz talos-obmc-linux-6fe28dbf05e329ce136f38219d95a1826ceafebd.zip |
dm bitset: introduce cursor api
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/md/persistent-data/dm-bitset.h')
-rw-r--r-- | drivers/md/persistent-data/dm-bitset.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/md/persistent-data/dm-bitset.h b/drivers/md/persistent-data/dm-bitset.h index c2287d672ef5..017c0d42cdbf 100644 --- a/drivers/md/persistent-data/dm-bitset.h +++ b/drivers/md/persistent-data/dm-bitset.h @@ -161,6 +161,28 @@ int dm_bitset_test_bit(struct dm_disk_bitset *info, dm_block_t root, int dm_bitset_flush(struct dm_disk_bitset *info, dm_block_t root, dm_block_t *new_root); +struct dm_bitset_cursor { + struct dm_disk_bitset *info; + struct dm_array_cursor cursor; + + uint32_t entries_remaining; + uint32_t array_index; + uint32_t bit_index; + uint64_t current_bits; +}; + +/* + * Make sure you've flush any dm_disk_bitset and updated the root before + * using this. + */ +int dm_bitset_cursor_begin(struct dm_disk_bitset *info, + dm_block_t root, uint32_t nr_entries, + struct dm_bitset_cursor *c); +void dm_bitset_cursor_end(struct dm_bitset_cursor *c); + +int dm_bitset_cursor_next(struct dm_bitset_cursor *c); +bool dm_bitset_cursor_get_value(struct dm_bitset_cursor *c); + /*----------------------------------------------------------------*/ #endif /* _LINUX_DM_BITSET_H */ |