2017-02-27 15:34:41 +00:00
|
|
|
#pragma once
|
|
|
|
|
2017-04-07 19:35:05 +02:00
|
|
|
#ifdef STM32F0
|
|
|
|
#define PRSZu "u"
|
|
|
|
#else
|
|
|
|
#define PRSZu "zu"
|
|
|
|
#endif
|
|
|
|
|
2017-03-17 14:55:24 +00:00
|
|
|
#include <limits.h>
|
|
|
|
|
2017-02-27 15:34:41 +00:00
|
|
|
#define min(x, y) ((x < y) ? (x) : (y))
|
|
|
|
#define max(x, y) ((x > y) ? (x) : (y))
|
2017-03-11 12:44:26 +00:00
|
|
|
|
|
|
|
/* Human-readable sizes */
|
|
|
|
#define KIB 1024
|
|
|
|
#define MIB (1024 * KIB)
|
2017-04-07 18:34:32 +02:00
|
|
|
#define GIB (1024 * MIB)
|
2017-03-11 12:44:26 +00:00
|
|
|
|
|
|
|
/* Rounding */
|
|
|
|
#define IS_ROUND(x, k) (!((x) & ((k) - 1)))
|
|
|
|
#define ROUND_DOWN(x, k) ((x) & ~((k) - 1))
|
|
|
|
#define ROUND_UP(x, k) (((x) + (k) - 1) & ~((k) - 1))
|
2017-03-17 14:55:24 +00:00
|
|
|
|
|
|
|
/* Bit manipulation */
|
|
|
|
#define BIT_SIZE(t) (CHAR_BIT * sizeof(t))
|
|
|
|
#define BIT(n) (1 << (n))
|