diff options
author | Uros Majstorovic <majstor@majstor.org> | 2025-02-16 20:11:47 +0100 |
---|---|---|
committer | Uros Majstorovic <majstor@majstor.org> | 2025-02-16 20:11:47 +0100 |
commit | 064631db87182694459056ceeb331506b553d0f0 (patch) | |
tree | d1113214d11a6f407548c4f16008adb1e7c73475 /fw/fe310/eos/dev/drv/ov2640_imlib.h | |
parent | aeb896b55c384d7f9a6e9a29f74cf560c6392c5b (diff) |
drivers made independent from microcontroller/os
Diffstat (limited to 'fw/fe310/eos/dev/drv/ov2640_imlib.h')
-rw-r--r-- | fw/fe310/eos/dev/drv/ov2640_imlib.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/fw/fe310/eos/dev/drv/ov2640_imlib.h b/fw/fe310/eos/dev/drv/ov2640_imlib.h new file mode 100644 index 0000000..b32a79f --- /dev/null +++ b/fw/fe310/eos/dev/drv/ov2640_imlib.h @@ -0,0 +1,12 @@ +/* from OpenMV imlib.h */ +#define IM_LOG2_2(x) (((x) & 0x2ULL) ? ( 2 ) : 1) // NO ({ ... }) ! +#define IM_LOG2_4(x) (((x) & 0xCULL) ? ( 2 + IM_LOG2_2((x) >> 2)) : IM_LOG2_2(x)) // NO ({ ... }) ! +#define IM_LOG2_8(x) (((x) & 0xF0ULL) ? ( 4 + IM_LOG2_4((x) >> 4)) : IM_LOG2_4(x)) // NO ({ ... }) ! +#define IM_LOG2_16(x) (((x) & 0xFF00ULL) ? ( 8 + IM_LOG2_8((x) >> 8)) : IM_LOG2_8(x)) // NO ({ ... }) ! +#define IM_LOG2_32(x) (((x) & 0xFFFF0000ULL) ? (16 + IM_LOG2_16((x) >> 16)) : IM_LOG2_16(x)) // NO ({ ... }) ! +#define IM_LOG2(x) (((x) & 0xFFFFFFFF00000000ULL) ? (32 + IM_LOG2_32((x) >> 32)) : IM_LOG2_32(x)) // NO ({ ... }) ! + +#define IM_MAX(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a > _b ? _a : _b; }) +#define IM_MIN(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a < _b ? _a : _b; }) +#define IM_DIV(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _b ? (_a / _b) : 0; }) +#define IM_MOD(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _b ? (_a % _b) : 0; }) |