tools/include: Add _RET_IP_ and math definitions to kernel.h
authorKarolina Drobnik <karolinadrobnik@gmail.com>
Fri, 23 Dec 2022 00:09:57 +0000 (18:09 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:14:44 +0000 (13:14 +0100)
commit 5cf67a6051ea2558fd7c3d39c5a808db73073e9d upstream.

Add max_t, min_t and clamp functions, together with _RET_IP_
definition, so they can be used in testing.

Signed-off-by: Karolina Drobnik <karolinadrobnik@gmail.com>
Signed-off-by: Mike Rapoport <rppt@kernel.org>
Link: https://lore.kernel.org/r/230fea382cb1e1659cdd52a55201854d38a0a149.1643796665.git.karolinadrobnik@gmail.com
[tyhicks: Backport around contextual differences due to the lack of v5.16 commit
 d6e6a27d960f ("tools: Fix math.h breakage"). That commit fixed a commit
 that was merged in v5.16-rc1 and, therefore, doesn't need to go back to
 the stable branches.]
Signed-off-by: Tyler Hicks (Microsoft) <code@tyhicks.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/include/linux/kernel.h

index a7e54a0..c2e1098 100644 (file)
@@ -14,6 +14,8 @@
 #define UINT_MAX       (~0U)
 #endif
 
+#define _RET_IP_               ((unsigned long)__builtin_return_address(0))
+
 #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
 
 #define PERF_ALIGN(x, a)       __PERF_ALIGN_MASK(x, (typeof(x))(a)-1)
        _min1 < _min2 ? _min1 : _min2; })
 #endif
 
+#define max_t(type, x, y)      max((type)x, (type)y)
+#define min_t(type, x, y)      min((type)x, (type)y)
+#define clamp(val, lo, hi)     min((typeof(val))max(val, lo), hi)
+
 #ifndef roundup
 #define roundup(x, y) (                                \
 {                                                      \