Blame SOURCES/0120-Move-ilog-functions-from-util.c-to-defs.h.patch

d811e0
From c9e41cd3485fa1a65dc6206c5b210b4be4c5597c Mon Sep 17 00:00:00 2001
d811e0
From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
d811e0
Date: Sat, 13 Jun 2020 18:18:32 +0200
d811e0
Subject: [PATCH 120/138] Move ilog* functions from util.c to defs.h
d811e0
d811e0
* util.c (ILOG2_ITER_, ilog2_klong, ilog2_64, ilog2_32): Move ...
d811e0
* defs.h: ... here.
d811e0
---
d811e0
 defs.h | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
d811e0
 util.c | 62 --------------------------------------------------------------
d811e0
 2 files changed, 60 insertions(+), 62 deletions(-)
d811e0
d811e0
diff --git a/defs.h b/defs.h
d811e0
index 3aa07fb..d8bd513 100644
d811e0
--- a/defs.h
d811e0
+++ b/defs.h
d811e0
@@ -1698,4 +1698,64 @@ scno_is_valid(kernel_ulong_t scno)
d811e0
 
d811e0
 # define SYS_FUNC(syscall_name) int SYS_FUNC_NAME(sys_ ## syscall_name)(struct tcb *tcp)
d811e0
 
d811e0
+#define ILOG2_ITER_(val_, ret_, bit_)					\
d811e0
+	do {								\
d811e0
+		typeof(ret_) shift_ =					\
d811e0
+			((val_) > ((((typeof(val_)) 1)			\
d811e0
+				   << (1 << (bit_))) - 1)) << (bit_);	\
d811e0
+		(val_) >>= shift_;					\
d811e0
+		(ret_) |= shift_;					\
d811e0
+	} while (0)
d811e0
+
d811e0
+/**
d811e0
+ * Calculate floor(log2(val)), with the exception of val == 0, for which 0
d811e0
+ * is returned as well.
d811e0
+ *
d811e0
+ * @param val 64-bit value to calculate integer base-2 logarithm for.
d811e0
+ * @return    (unsigned int) floor(log2(val)) if val > 0, 0 if val == 0.
d811e0
+ */
d811e0
+static inline unsigned int
d811e0
+ilog2_64(uint64_t val)
d811e0
+{
d811e0
+	unsigned int ret = 0;
d811e0
+
d811e0
+	ILOG2_ITER_(val, ret, 5);
d811e0
+	ILOG2_ITER_(val, ret, 4);
d811e0
+	ILOG2_ITER_(val, ret, 3);
d811e0
+	ILOG2_ITER_(val, ret, 2);
d811e0
+	ILOG2_ITER_(val, ret, 1);
d811e0
+	ILOG2_ITER_(val, ret, 0);
d811e0
+
d811e0
+	return ret;
d811e0
+}
d811e0
+
d811e0
+/**
d811e0
+ * Calculate floor(log2(val)), with the exception of val == 0, for which 0
d811e0
+ * is returned as well.
d811e0
+ *
d811e0
+ * @param val 32-bit value to calculate integer base-2 logarithm for.
d811e0
+ * @return    (unsigned int) floor(log2(val)) if val > 0, 0 if val == 0.
d811e0
+ */
d811e0
+static inline unsigned int
d811e0
+ilog2_32(uint32_t val)
d811e0
+{
d811e0
+	unsigned int ret = 0;
d811e0
+
d811e0
+	ILOG2_ITER_(val, ret, 4);
d811e0
+	ILOG2_ITER_(val, ret, 3);
d811e0
+	ILOG2_ITER_(val, ret, 2);
d811e0
+	ILOG2_ITER_(val, ret, 1);
d811e0
+	ILOG2_ITER_(val, ret, 0);
d811e0
+
d811e0
+	return ret;
d811e0
+}
d811e0
+
d811e0
+#if SIZEOF_KERNEL_LONG_T > 4
d811e0
+# define ilog2_klong ilog2_64
d811e0
+#else
d811e0
+# define ilog2_klong ilog2_32
d811e0
+#endif
d811e0
+
d811e0
+#undef ILOG2_ITER_
d811e0
+
d811e0
 #endif /* !STRACE_DEFS_H */
d811e0
diff --git a/util.c b/util.c
d811e0
index 59696b5..cde76c1 100644
d811e0
--- a/util.c
d811e0
+++ b/util.c
d811e0
@@ -1120,68 +1120,6 @@ dumpiov_upto(struct tcb *const tcp, const int len, const kernel_ulong_t addr,
d811e0
 #undef iov
d811e0
 }
d811e0
 
d811e0
-#define ILOG2_ITER_(val_, ret_, bit_)					\
d811e0
-	do {								\
d811e0
-		typeof(ret_) shift_ =					\
d811e0
-			((val_) > ((((typeof(val_)) 1)			\
d811e0
-				   << (1 << (bit_))) - 1)) << (bit_);	\
d811e0
-		(val_) >>= shift_;					\
d811e0
-		(ret_) |= shift_;					\
d811e0
-	} while (0)
d811e0
-
d811e0
-#if SIZEOF_KERNEL_LONG_T > 4
d811e0
-
d811e0
-# define ilog2_klong ilog2_64
d811e0
-/**
d811e0
- * Calculate floor(log2(val)), with the exception of val == 0, for which 0
d811e0
- * is returned as well.
d811e0
- *
d811e0
- * @param val 64-bit value to calculate integer base-2 logarithm for.
d811e0
- * @return    (unsigned int) floor(log2(val)) if val > 0, 0 if val == 0.
d811e0
- */
d811e0
-static inline unsigned int
d811e0
-ilog2_64(uint64_t val)
d811e0
-{
d811e0
-	unsigned int ret = 0;
d811e0
-
d811e0
-	ILOG2_ITER_(val, ret, 5);
d811e0
-	ILOG2_ITER_(val, ret, 4);
d811e0
-	ILOG2_ITER_(val, ret, 3);
d811e0
-	ILOG2_ITER_(val, ret, 2);
d811e0
-	ILOG2_ITER_(val, ret, 1);
d811e0
-	ILOG2_ITER_(val, ret, 0);
d811e0
-
d811e0
-	return ret;
d811e0
-}
d811e0
-
d811e0
-#else /* SIZEOF_KERNEL_LONG_T == 4 */
d811e0
-
d811e0
-# define ilog2_klong ilog2_32
d811e0
-/**
d811e0
- * Calculate floor(log2(val)), with the exception of val == 0, for which 0
d811e0
- * is returned as well.
d811e0
- *
d811e0
- * @param val 32-bit value to calculate integer base-2 logarithm for.
d811e0
- * @return    (unsigned int) floor(log2(val)) if val > 0, 0 if val == 0.
d811e0
- */
d811e0
-static inline unsigned int
d811e0
-ilog2_32(uint32_t val)
d811e0
-{
d811e0
-	unsigned int ret = 0;
d811e0
-
d811e0
-	ILOG2_ITER_(val, ret, 4);
d811e0
-	ILOG2_ITER_(val, ret, 3);
d811e0
-	ILOG2_ITER_(val, ret, 2);
d811e0
-	ILOG2_ITER_(val, ret, 1);
d811e0
-	ILOG2_ITER_(val, ret, 0);
d811e0
-
d811e0
-	return ret;
d811e0
-}
d811e0
-
d811e0
-#endif /* SIZEOF_KERNEL_LONG_T */
d811e0
-
d811e0
-#undef ILOG2_ITER_
d811e0
-
d811e0
 void
d811e0
 dumpstr(struct tcb *const tcp, const kernel_ulong_t addr,
d811e0
 	const kernel_ulong_t len)
d811e0
-- 
d811e0
2.1.4
d811e0