Routines using the QEMU_WEAK attribute can have a default implementation that
can be later overriden just by re-implementing it.

Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu>
---
 compiler.h |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/compiler.h b/compiler.h
index 9af5dc6..bc06760 100644
--- a/compiler.h
+++ b/compiler.h
@@ -12,7 +12,7 @@
 #define QEMU_WARN_UNUSED_RESULT
 #endif
 
-#define QEMU_BUILD_BUG_ON(x) \
+#define QEMU_BUILD_BUG_ON(x)                                    \
     typedef char qemu_build_bug_on__##__LINE__[(x)?-1:1];
 
 #if defined __GNUC__
@@ -31,4 +31,15 @@
 #define GCC_FMT_ATTR(n, m)
 #endif
 
+/* Routine attribute to provide default (overridable) implementations.
+ *
+ * The code providing the default implementation must define QEMU_WEAK_DEFAULT
+ * before including this file.
+ */
+#if !defined(QEMU_WEAK_DEFAULT)
+#define QEMU_WEAK
+#else
+#define QEMU_WEAK __attribute__((weak))
+#endif
+
 #endif /* COMPILER_H */


Reply via email to