add PA_CLAMP_LIKELY and PA_CLAMP_UNLIKELY macros
authorLennart Poettering <lennart@poettering.net>
Fri, 9 Nov 2007 01:29:50 +0000 (01:29 +0000)
committerLennart Poettering <lennart@poettering.net>
Fri, 9 Nov 2007 01:29:50 +0000 (01:29 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2033 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/macro.h

index c6bba43..548e4ed 100644 (file)
@@ -31,6 +31,7 @@
 #include <unistd.h>
 
 #include <pulsecore/log.h>
+#include <pulsecore/gccmacro.h>
 
 #ifndef PACKAGE
 #error "Please include config.h before including this file!"
@@ -73,9 +74,12 @@ static inline size_t pa_page_align(size_t l) {
 #endif
 
 #ifndef CLAMP
-#define CLAMP(x, low, high)  (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
+#define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
 #endif
 
+#define PA_CLAMP_LIKELY(x, low, high) (PA_LIKELY((x) > (high)) ? (high) : PA_LIKELY(((x) < (low)) ? (low) : (x)))
+#define PA_CLAMP_UNLIKELY(x, low, high) (PA_UNLIKELY((x) > (high)) ? (high) : PA_UNLIKELY(((x) < (low)) ? (low) : (x)))
+
 /* This type is not intended to be used in exported APIs! Use classic "int" there! */
 #ifdef HAVE_STD_BOOL
 typedef _Bool pa_bool_t;