Date: Sun, 13 Jun 2010 23:24:15 +1000 From: Lawrence Stewart <lstewart@freebsd.org> To: Gabor Kovesdan <gabor@FreeBSD.org> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r209119 - head/sys/sys Message-ID: <4C14DBFF.5050305@freebsd.org> In-Reply-To: <4C14B0EA.8090500@FreeBSD.org> References: <201006130239.o5D2du3m086332@svn.freebsd.org> <20100613101025.GD1320@garage.freebsd.pl> <4C14B0EA.8090500@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 06/13/10 20:20, Gabor Kovesdan wrote: > >>> >>> +/* >>> + * Utility macros. >>> + */ >>> +#define DPCPU_SUM(n, var, sum) \ >>> +do { \ >>> + (sum) = 0; \ >>> + u_int i; \ >>> + CPU_FOREACH(i) \ >>> + (sum) += (DPCPU_ID_PTR(i, n))->var; \ >>> +} while (0) >> I'd suggest first swapping variable declaration and '(sum) = 0;'. >> Also using 'i' as a counter in macro can easly lead to name collision. >> If you need to do it, I'd suggest '_i' or something. >> Maybe it would be better to make it an inline function rather than macro? > And why using old BSD-stlye u_int? style(9) also suggest using ISO C types. From <sys/smp.h> extern u_int mp_maxid; ... #define CPU_FOREACH(i) \ for ((i) = 0; (i) <= mp_maxid; (i)++) \ if (!CPU_ABSENT((i))) Made sense to keep the types for i and mp_maxid the same. Happy to change if you have a better suggestion. Cheers, Lawrence
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C14DBFF.5050305>