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 */