+ # refrain from using compiler __sync_xxx builtins
+ awk -v FOLDERS="lib drivers app examples" \
+ -v EXPRESSIONS="__sync_.*\\\(" \
+ -v RET_ON_FAIL=1 \
+ -v MESSAGE='Using __sync_xxx builtins' \
+ -f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
+ "$1" || res=1
+
+ # refrain from using compiler __atomic_thread_fence()
+ # It should be avoided on x86 for SMP case.
+ awk -v FOLDERS="lib drivers app examples" \
+ -v EXPRESSIONS="__atomic_thread_fence\\\(" \
+ -v RET_ON_FAIL=1 \
+ -v MESSAGE='Using __atomic_thread_fence' \
+ -f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
+ "$1" || res=1
+
+ # forbid use of __reserved which is a reserved keyword in Windows system headers
+ awk -v FOLDERS="lib drivers app examples" \
+ -v EXPRESSIONS='\\<__reserved\\>' \
+ -v RET_ON_FAIL=1 \
+ -v MESSAGE='Using __reserved' \
+ -f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
+ "$1" || res=1
+
+ # forbid use of experimental build flag except in examples
+ awk -v FOLDERS='lib drivers app' \
+ -v EXPRESSIONS='-DALLOW_EXPERIMENTAL_API allow_experimental_apis' \
+ -v RET_ON_FAIL=1 \
+ -v MESSAGE='Using experimental build flag for in-tree compilation' \
+ -f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
+ "$1" || res=1
+
+ # refrain from using RTE_LOG_REGISTER for drivers and libs
+ awk -v FOLDERS='lib drivers' \
+ -v EXPRESSIONS='\\<RTE_LOG_REGISTER\\>' \
+ -v RET_ON_FAIL=1 \
+ -v MESSAGE='Using RTE_LOG_REGISTER, prefer RTE_LOG_REGISTER_(DEFAULT|SUFFIX)' \
+ -f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
+ "$1" || res=1
+
+ # SVG must be included with wildcard extension to allow conversion