summaryrefslogtreecommitdiff
path: root/gpxe/src/include/compiler.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpxe/src/include/compiler.h')
-rw-r--r--gpxe/src/include/compiler.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/gpxe/src/include/compiler.h b/gpxe/src/include/compiler.h
index 8ab7b8ae..b6a6f8e2 100644
--- a/gpxe/src/include/compiler.h
+++ b/gpxe/src/include/compiler.h
@@ -131,11 +131,26 @@ extern void dbg_decolourise ( void );
extern void dbg_hex_dump_da ( unsigned long dispaddr,
const void *data, unsigned long len );
-/* Compatibility with existing Makefile */
#if DEBUG_SYMBOL
-#define DBGLVL DEBUG_SYMBOL
+#define DBGLVL_MAX DEBUG_SYMBOL
+#else
+#define DBGLVL_MAX 0
+#endif
+
+/* Allow for selective disabling of enabled debug levels */
+#if DBGLVL_MAX
+int __debug_disable;
+#define DBGLVL ( DBGLVL_MAX & ~__debug_disable )
+#define DBG_DISABLE( level ) do { \
+ __debug_disable |= ( (level) & DBGLVL_MAX ); \
+ } while ( 0 )
+#define DBG_ENABLE( level ) do { \
+ __debug_disable &= ~( (level) & DBGLVL_MAX ); \
+ } while ( 0 )
#else
#define DBGLVL 0
+#define DBG_DISABLE( level ) do { } while ( 0 )
+#define DBG_ENABLE( level ) do { } while ( 0 )
#endif
#define DBGLVL_LOG 1
@@ -325,6 +340,9 @@ extern void dbg_hex_dump_da ( unsigned long dispaddr,
/** Declare a data structure to be aligned with 16-byte alignment */
#define __aligned __attribute__ (( aligned ( 16 ) ))
+/** Declare a function to be always inline */
+#define __always_inline __attribute__ (( always_inline ))
+
/**
* Shared data.
*