Add warn_on_user_ptr()
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 2 May 2019 01:22:54 +0000 (21:22 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 2 May 2019 01:41:48 +0000 (21:41 -0400)
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/include/assert.h

index a2d9994..4539e75 100644 (file)
@@ -13,6 +13,12 @@ void _panic(struct hw_trapframe *, const char *, int, const char *, ...)
 #define warn_once(...) run_once_racy(warn(__VA_ARGS__))
 #define warn_on(x) do { if (x) warn(#x);} while (0)
 #define warn_on_once(x) do { if (x) warn_once(#x);} while (0)
+
+#define warn_on_user_ptr(x) do { \
+       uintptr_t _x = (uintptr_t)(x); \
+       warn_on(_x && _x < ULIM); \
+} while (0)
+
 #define panic(...) _panic(NULL, __FILE__, __LINE__, __VA_ARGS__)
 #define panic_hwtf(x, ...) _panic(x, __FILE__, __LINE__, __VA_ARGS__)
 #define exhausted(...) _panic(NULL, __FILE__, __LINE__, __VA_ARGS__)