From b7162fee8811461fb87dd9c5b843b3d1ba283e5c Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Fri, 28 Apr 2017 11:18:15 +0100 Subject: [PATCH] examples/performance-thread: fix build on FreeBSD 10.0 While later releases in the FreeBSD 10 series have a CPU_COUNT macro defined, FreeBSD 10.0 and 10.1 do not have this macro. Therefore we provide a basic fallback implementation of the macro for platforms where it is not defined. Fixes: 433ba6228f9a ("examples/performance-thread: add pthread_shim app") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson Acked-by: Pablo de Lara --- .../pthread_shim/pthread_shim.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/examples/performance-thread/pthread_shim/pthread_shim.c b/examples/performance-thread/pthread_shim/pthread_shim.c index 71673119a5..113bafa00b 100644 --- a/examples/performance-thread/pthread_shim/pthread_shim.c +++ b/examples/performance-thread/pthread_shim/pthread_shim.c @@ -48,6 +48,21 @@ #define POSIX_ERRNO(x) (x) +/* some releases of FreeBSD 10, e.g. 10.0, don't have CPU_COUNT macro */ +#ifndef CPU_COUNT +#define CPU_COUNT(x) __cpu_count(x) + +static inline unsigned int +__cpu_count(const rte_cpuset_t *cpuset) +{ + unsigned int i, count = 0; + for (i = 0; i < RTE_MAX_LCORE; i++) + if (CPU_ISSET(i, cpuset)) + count++; + return count; +} +#endif + /* * this flag determines at run time if we override pthread * calls and map then to equivalent lthread calls -- 2.20.1