]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blob - libfrog/bitmap.h
libfrog: fix bitmap error communication problems
[thirdparty/xfsprogs-dev.git] / libfrog / bitmap.h
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3 * Copyright (C) 2018 Oracle. All Rights Reserved.
4 * Author: Darrick J. Wong <darrick.wong@oracle.com>
5 */
6 #ifndef __LIBFROG_BITMAP_H__
7 #define __LIBFROG_BITMAP_H__
8
9 struct bitmap {
10 pthread_mutex_t bt_lock;
11 struct avl64tree_desc *bt_tree;
12 };
13
14 int bitmap_alloc(struct bitmap **bmap);
15 void bitmap_free(struct bitmap **bmap);
16 int bitmap_set(struct bitmap *bmap, uint64_t start, uint64_t length);
17 int bitmap_iterate(struct bitmap *bmap, int (*fn)(uint64_t, uint64_t, void *),
18 void *arg);
19 bool bitmap_test(struct bitmap *bmap, uint64_t start,
20 uint64_t len);
21 bool bitmap_empty(struct bitmap *bmap);
22 void bitmap_dump(struct bitmap *bmap);
23
24 #endif /* __LIBFROG_BITMAP_H__ */