summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2015-04-10 20:39:43 +0200
committerSven Eden <yamakuzure@gmx.net>2017-03-14 08:01:57 +0100
commitd6a6c7157af1ce285962f98f006a3f05bb7c11ef (patch)
tree45cce9e7e8b2c3a67f0117d0c0740f5d396d14cf
parent901cf821ac8c13c78e1acb884f59baf41316fb8f (diff)
shared: move assert_return_errno() from libudev
This should not be used for any new code, as we don't set errno in new code, but there are several legacy users, so let's keep it in shared.
-rw-r--r--src/shared/macro.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/shared/macro.h b/src/shared/macro.h
index 7f89951d6..7ae1ed80b 100644
--- a/src/shared/macro.h
+++ b/src/shared/macro.h
@@ -256,6 +256,15 @@ static inline unsigned long ALIGN_POWER2(unsigned long u) {
} \
} while (false)
+#define assert_return_errno(expr, r, err) \
+ do { \
+ if (_unlikely_(!(expr))) { \
+ log_assert_failed_return(#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__); \
+ errno = err; \
+ return (r); \
+ } \
+ } while (false)
+
#define PTR_TO_INT(p) ((int) ((intptr_t) (p)))
#define INT_TO_PTR(u) ((void *) ((intptr_t) (u)))
#define PTR_TO_UINT(p) ((unsigned int) ((uintptr_t) (p)))