From 0961c6aba21eb4456aee0e0ed034d3e36571dd63 Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Fri, 28 Oct 2022 01:28:12 +0200 Subject: [PATCH] rusticl: add small bitset impl Signed-off-by: Karol Herbst Part-of: --- src/gallium/frontends/rusticl/meson.build | 1 + src/gallium/frontends/rusticl/util/bitset.rs | 6 ++++++ src/gallium/frontends/rusticl/util/lib.rs | 1 + 3 files changed, 8 insertions(+) create mode 100644 src/gallium/frontends/rusticl/util/bitset.rs diff --git a/src/gallium/frontends/rusticl/meson.build b/src/gallium/frontends/rusticl/meson.build index 200ee26..844b829 100644 --- a/src/gallium/frontends/rusticl/meson.build +++ b/src/gallium/frontends/rusticl/meson.build @@ -23,6 +23,7 @@ rust = import('unstable-rust') libmesa_rust_util_files = files( 'util/lib.rs', 'util/assert.rs', + 'util/bitset.rs', 'util/properties.rs', 'util/ptr.rs', 'util/string.rs', diff --git a/src/gallium/frontends/rusticl/util/bitset.rs b/src/gallium/frontends/rusticl/util/bitset.rs new file mode 100644 index 0000000..f7e8a47 --- /dev/null +++ b/src/gallium/frontends/rusticl/util/bitset.rs @@ -0,0 +1,6 @@ +pub fn test_bit(bitset: &[u32], bit: u32) -> bool { + let idx = bit / 32; + let test = bit % 32; + + bitset[idx as usize] & (1 << test) != 0 +} diff --git a/src/gallium/frontends/rusticl/util/lib.rs b/src/gallium/frontends/rusticl/util/lib.rs index 15ea272..b3a090f 100644 --- a/src/gallium/frontends/rusticl/util/lib.rs +++ b/src/gallium/frontends/rusticl/util/lib.rs @@ -1,4 +1,5 @@ pub mod assert; +pub mod bitset; pub mod math; pub mod properties; pub mod ptr; -- 2.7.4