summaryrefslogtreecommitdiffstats
path: root/syshead.h
diff options
context:
space:
mode:
authorjames <james@e7ae566f-a301-0410-adde-c780ea21d3b5>2008-07-16 20:36:54 +0000
committerjames <james@e7ae566f-a301-0410-adde-c780ea21d3b5>2008-07-16 20:36:54 +0000
commit5d89a3629cb0fd0ca6764ba9a6d6e3d1ff61c70b (patch)
treed16a1846265310a31d8aa02c3276306240772ce8 /syshead.h
parent1c0cc4ad89308f3cc3ea26c6e4566e6e29073de7 (diff)
downloadopenvpn-5d89a3629cb0fd0ca6764ba9a6d6e3d1ff61c70b.tar.gz
openvpn-5d89a3629cb0fd0ca6764ba9a6d6e3d1ff61c70b.tar.xz
openvpn-5d89a3629cb0fd0ca6764ba9a6d6e3d1ff61c70b.zip
Added likely() and unlikely() branch prediction hint macros
to syshead.h Introduced BUF_MAX constant to limit struct buffer offset and length values. BUF_MAX has been set to 2^20. Use likely() and unlikely() macros in buffer.h code to allow the compiler to generate more efficient code. git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@3058 e7ae566f-a301-0410-adde-c780ea21d3b5
Diffstat (limited to 'syshead.h')
-rw-r--r--syshead.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/syshead.h b/syshead.h
index e6ced2a..07f1970 100644
--- a/syshead.h
+++ b/syshead.h
@@ -36,6 +36,15 @@
#endif
#endif
+/* branch prediction hints */
+#if defined(__GNUC__)
+# define likely(x) __builtin_expect((x),1)
+# define unlikely(x) __builtin_expect((x),0)
+#else
+# define likely(x) (x)
+# define unlikely(x) (x)
+#endif
+
#if defined(_WIN32) && !defined(WIN32)
#define WIN32
#endif