diff --git a/hypervisor/include/arch/x86/lib/bits.h b/hypervisor/include/arch/x86/lib/bits.h index 3783f444a..addf22bad 100644 --- a/hypervisor/include/arch/x86/lib/bits.h +++ b/hypervisor/include/arch/x86/lib/bits.h @@ -291,4 +291,9 @@ build_bitmap_testandclear(bitmap_test_and_clear_lock, "q", uint64_t, BUS_LOCK) build_bitmap_testandclear(bitmap32_test_and_clear_nolock, "l", uint32_t, "") build_bitmap_testandclear(bitmap32_test_and_clear_lock, "l", uint32_t, BUS_LOCK) +static inline uint16_t bitmap_weight(uint64_t bits) +{ + return __builtin_popcountl(bits); +} + #endif /* BITS_H*/