12#define MAX(a,b) ( ((a)>(b)) ? (a) : (b) )
16#define MIN(a,b) ( ((a)<(b)) ? (a) : (b) )
21#define MIN_POS(a,b) ((a) < 0 ? (b) : ((b) < 0 ? (a) : MIN((a), (b))))
25#define ABS(x) ( ((x)>=0) ? (x) : (-(x)) )
28#define DIV_INT_ROUND_UP(a, b) ((__typeof__(a)) ((int64_t) (((((double) (a)) + ((double) (b)) - 1) / (b)))))
31#define MEGA (KILO*KILO)
32#define GIGA (KILO*MEGA)
33#define TERA (KILO*GIGA)
34#define PETA (KILO*TERA)
42#define BYTES_TO_STORAGE_UNIT(x, unit) (ceil(((double) x) / unit))
43#define BYTES_TO_KILOBYTES(x) BYTES_TO_STORAGE_UNIT(x, KILOBYTE)
44#define BYTES_TO_MEGABYTES(x) BYTES_TO_STORAGE_UNIT(x, MEGABYTE)
45#define BYTES_TO_GIGABYTES(x) BYTES_TO_STORAGE_UNIT(x, GIGABYTE)
46#define BYTES_TO_TERABYTES(x) BYTES_TO_STORAGE_UNIT(x, TERABYTE)
47#define BYTES_TO_PETABYTES(x) BYTES_TO_STORAGE_UNIT(x, PETABYTE)
49#define MEGABYTES_TO_BYTES(x) ((int64_t)(x) * MEGA)
51#define USECOND 1000000