| // SPDX-License-Identifier: GPL-2.0+ | |
| /* | |
| * Copyright (C) 2018 Oracle. All Rights Reserved. | |
| * Author: Darrick J. Wong <darrick.wong@oracle.com> | |
| */ | |
| #ifndef __LIBFROG_BITMAP_H__ | |
| #define __LIBFROG_BITMAP_H__ | |
| struct bitmap { | |
| pthread_mutex_t bt_lock; | |
| struct avl64tree_desc *bt_tree; | |
| }; | |
| int bitmap_init(struct bitmap **bmap); | |
| void bitmap_free(struct bitmap **bmap); | |
| int bitmap_set(struct bitmap *bmap, uint64_t start, uint64_t length); | |
| int bitmap_iterate(struct bitmap *bmap, int (*fn)(uint64_t, uint64_t, void *), | |
| void *arg); | |
| bool bitmap_test(struct bitmap *bmap, uint64_t start, | |
| uint64_t len); | |
| bool bitmap_empty(struct bitmap *bmap); | |
| void bitmap_dump(struct bitmap *bmap); | |
| #endif /* __LIBFROG_BITMAP_H__ */ |