19 lines
573 B
C
19 lines
573 B
C
|
#ifndef __LIB_ROUND_H
|
||
|
#define __LIB_ROUND_H
|
||
|
|
||
|
/* Yields X rounded up to the nearest multiple of STEP.
|
||
|
For X >= 0, STEP >= 1 only. */
|
||
|
#define ROUND_UP(X, STEP) (((X) + (STEP) - 1) / (STEP) * (STEP))
|
||
|
|
||
|
/* Yields X divided by STEP, rounded up.
|
||
|
For X >= 0, STEP >= 1 only. */
|
||
|
#define DIV_ROUND_UP(X, STEP) (((X) + (STEP) - 1) / (STEP))
|
||
|
|
||
|
/* Yields X rounded down to the nearest multiple of STEP.
|
||
|
For X >= 0, STEP >= 1 only. */
|
||
|
#define ROUND_DOWN(X, STEP) ((X) / (STEP) * (STEP))
|
||
|
|
||
|
/* There is no DIV_ROUND_DOWN. It would be simply X / STEP. */
|
||
|
|
||
|
#endif /* lib/round.h */
|