ROUNDUP(9) Kernel Developer's Manual ROUNDUP(9)
**NAME**
**roundup** -- macros for counting and rounding
**SYNOPSIS**
**#include** **<sys/param.h>**
size
**howmany**(x, size);
size
**roundup**(x, size);
size
**rounddown**(x, size);
size
**roundup2**(x, size);
int
**powerof2**(x);
**DESCRIPTION**
The **roundup**() and **rounddown**() macros return an integer from rounding x up
and down, respectively, to the next size. The **howmany**() macro in turn
reveals how many times size fits into x, rounding the residual up.
The **roundup2**() macro also rounds up, but with the assumption that size is
a power of two. If x is indeed a power of two, **powerof2**() return 1.
**RETURN** **VALUES**
The return value is an integer from the respective operation. If x is 0,
all macros except **powerof2**() return 0. The behavior is undefined if size
is 0.
**EXAMPLES**
The following example rounds the variable rx to a 32-bit boundary:
uint16_t rx;
...
rx = roundup2(rx, sizeof(uint32_t));
**SEE** **ALSO**
ilog2(3), param(3), imax(9)
**CAVEATS**
All described macros make no assumptions about the type of the
parameters. These are implicitly assumed to be unsigned integers.
NetBSD 7.99 June 1, 2011 NetBSD 7.99