svn commit: r209119 - head/sys/sys
Pawel Jakub Dawidek
pjd at FreeBSD.org
Sun Jun 13 10:10:48 UTC 2010
On Sun, Jun 13, 2010 at 02:39:55AM +0000, Lawrence Stewart wrote:
> Author: lstewart
> Date: Sun Jun 13 02:39:55 2010
> New Revision: 209119
> URL: http://svn.freebsd.org/changeset/base/209119
>
> Log:
> Add a utility macro to simplify calculating an aggregate sum from a DPCPU
> counter variable.
>
> Sponsored by: FreeBSD Foundation
> Reviewed by: jhb, rpaulo, rwatson (previous version of patch)
> MFC after: 1 week
>
> Modified:
> head/sys/sys/pcpu.h
>
> Modified: head/sys/sys/pcpu.h
> ==============================================================================
> --- head/sys/sys/pcpu.h Sun Jun 13 01:27:29 2010 (r209118)
> +++ head/sys/sys/pcpu.h Sun Jun 13 02:39:55 2010 (r209119)
> @@ -106,6 +106,17 @@ extern uintptr_t dpcpu_off[];
> #define DPCPU_ID_GET(i, n) (*DPCPU_ID_PTR(i, n))
> #define DPCPU_ID_SET(i, n, v) (*DPCPU_ID_PTR(i, n) = v)
>
> +/*
> + * 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?
--
Pawel Jakub Dawidek http://www.wheelsystems.com
pjd at FreeBSD.org http://www.FreeBSD.org
FreeBSD committer Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-all/attachments/20100613/58efb07d/attachment.pgp
More information about the svn-src-all
mailing list