Line |
Branch |
Exec |
Source |
1 |
|
|
// cppcheck-suppress-macro misra-c2012-1.2; allow __typeof__ extension |
2 |
|
|
#define MIN(a, b) ({ \ |
3 |
|
|
__typeof__ (a) _a = (a); \ |
4 |
|
|
__typeof__ (b) _b = (b); \ |
5 |
|
|
(_a < _b) ? _a : _b; \ |
6 |
|
|
}) |
7 |
|
|
|
8 |
|
|
// cppcheck-suppress-macro misra-c2012-1.2; allow __typeof__ extension |
9 |
|
|
#define MAX(a, b) ({ \ |
10 |
|
|
__typeof__ (a) _a = (a); \ |
11 |
|
|
__typeof__ (b) _b = (b); \ |
12 |
|
|
(_a > _b) ? _a : _b; \ |
13 |
|
|
}) |
14 |
|
|
|
15 |
|
|
// cppcheck-suppress-macro misra-c2012-1.2; allow __typeof__ extension |
16 |
|
|
#define CLAMP(x, low, high) ({ \ |
17 |
|
|
__typeof__(x) __x = (x); \ |
18 |
|
|
__typeof__(low) __low = (low);\ |
19 |
|
|
__typeof__(high) __high = (high);\ |
20 |
|
|
(__x > __high) ? __high : ((__x < __low) ? __low : __x); \ |
21 |
|
|
}) |
22 |
|
|
|
23 |
|
|
// cppcheck-suppress-macro misra-c2012-1.2; allow __typeof__ extension |
24 |
|
|
#define ABS(a) ({ \ |
25 |
|
|
__typeof__ (a) _a = (a); \ |
26 |
|
|
(_a > 0) ? _a : (-_a); \ |
27 |
|
|
}) |
28 |
|
|
|
29 |
|
|
#ifndef NULL |
30 |
|
|
// this just provides a standard implementation of NULL |
31 |
|
|
// in lieu of including libc in the panda build |
32 |
|
|
// cppcheck-suppress [misra-c2012-21.1] |
33 |
|
|
#define NULL ((void*)0) |
34 |
|
|
#endif |
35 |
|
|
|
36 |
|
|
// STM32 HAL defines this |
37 |
|
|
#ifndef UNUSED |
38 |
|
|
#define UNUSED(x) ((void)(x)) |
39 |
|
|
#endif |
40 |
|
|
|
41 |
|
|
#define COMPILE_TIME_ASSERT(pred) ((void)sizeof(char[1 - (2 * (!(pred) ? 1 : 0))])) |
42 |
|
|
|
43 |
|
|
// compute the time elapsed (in microseconds) from 2 counter samples |
44 |
|
|
// case where ts < ts_last is ok: overflow is properly re-casted into uint32_t |
45 |
|
|
uint32_t get_ts_elapsed(uint32_t ts, uint32_t ts_last) { |
46 |
|
|
return ts - ts_last; |
47 |
|
1976871 |
} |
48 |
|
|
|