PixelKey
NeoPixel USB Key
Loading...
Searching...
No Matches
helper_macros.h
1#ifndef HELPER_MACROS_H
2#define HELPER_MACROS_H
3
4#include <inttypes.h>
5
17#define DO_PRAGMA(x) _Pragma (#x)
18
20#define WARNING_SAVE() DO_PRAGMA(GCC diagnostic push)
21
23#define WARNING_DISABLE(warn) DO_PRAGMA(GCC diagnostic ignored "-W" warn)
24
26#define WARNING_RESTORE() DO_PRAGMA(GCC diagnostic pop)
27
29#define ATTRIBUTE(x) __attribute__ (( x ))
30
32#define ALIGN(bytes) ATTRIBUTE(aligned (bytes))
33
35#define OPTIMIZE_O0 ATTRIBUTE(optimize("O0"))
36
38#define OPTIMIZE_O1 ATTRIBUTE(optimize("O1"))
39
41#define OPTIMIZE_O2 ATTRIBUTE(optimize("O2"))
42
44#define OPTIMIZE_O3 ATTRIBUTE(optimize("O3"))
45
47#define OPTIMIZE_OG ATTRIBUTE(optimize("Og"))
48
50#define OPTIMIZE_OS ATTRIBUTE(optimize("Os"))
51
53#define OPTIMIZE_OFAST ATTRIBUTE(optimize("Ofast"))
54
63#define FLAG(i) ( 1 << i)
64
66#define FLAG8(i) ( UINT8_C(1) << i)
67
69#define FLAG16(i) (UINT16_C(1) << i)
70
72#define FLAG32(i) (UINT32_C(1) << i)
73
75#define FLAG64(i) (UINT64_C(1) << i)
76
79#if DEBUG
81# define BKPT() __BKPT(0)
82#else
84# define BKPT()
85#endif
86
88#define ARG_NOT_USED(arg) ((void)(arg))
89
95#ifndef max
97# define max(a,b) ((a) > (b) ? (a) : (b))
98#endif
99
100#ifndef min
102# define min(a,b) ((a) <= (b) ? (a) : (b))
103#endif
104
105#ifndef sign
107# define sign(a) ((a) >= 0 ? 1 : -1)
108#endif
109
114#endif