[WIP] [PATCH v0.0-20200229 03/11] ez: introduce bitops header file
Gao Xiang
hsiangkao at aol.com
Sat Feb 29 15:50:09 AEDT 2020
Currently it's used to find most significant set bit.
Signed-off-by: Gao Xiang <hsiangkao at aol.com>
---
include/ez/bitops.h | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
create mode 100644 include/ez/bitops.h
diff --git a/include/ez/bitops.h b/include/ez/bitops.h
new file mode 100644
index 0000000..5d8858e
--- /dev/null
+++ b/include/ez/bitops.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: Apache-2.0 */
+/*
+ * ez/include/ez/bitops.h
+ *
+ * Copyright (C) 2020 Gao Xiang <hsiangkao at aol.com>
+ */
+#ifndef __EZ_BITOPS_H
+#define __EZ_BITOPS_H
+
+/**
+ * fls - find last (most-significant) bit set
+ * @x: the word to search
+ *
+ * This is defined the same way as ffs.
+ * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
+ */
+static inline int fls(unsigned int x)
+{
+ return x ? sizeof(x) * 8 - __builtin_clz(x) : 0;
+}
+
+#endif
+
--
2.20.1
More information about the Linux-erofs
mailing list