Re: [PATCH 22/36] move round_up/down to kernel.h

Christoph Lameter
2010-01-21T20:49:35Z

On Wed, 20 Jan 2010, Yinghai Lu wrote:

> + * This looks more complex than it should be. But we need to
> + * get the type for the ~ right in round_down (it needs to be
> + * as wide as the result!), and we want to evaluate the macro
> + * arguments just once each.
> + */
> +#define __round_mask(x,y) ((__typeof__(x))((y)-1))
> +#define round_up(x,y) ((((x)-1) | __round_mask(x,y))+1)
> +#define round_down(x,y) ((x) & ~__round_mask(x,y))
> +
> #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
> #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
> #define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y))

So we are back to the earlier version.

Two functions doing the same thing. round_up and roundup.

If they are different(are they really used that way?) then they should
have names that emphasize the difference.