diff options
Diffstat (limited to 'firmware/libcommon/include/utils.h')
-rw-r--r-- | firmware/libcommon/include/utils.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/firmware/libcommon/include/utils.h b/firmware/libcommon/include/utils.h new file mode 100644 index 0000000..b9af1f6 --- /dev/null +++ b/firmware/libcommon/include/utils.h @@ -0,0 +1,18 @@ +#pragma once + +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) + +#ifdef __ARM +#define local_irq_save(x) \ + ({ \ + x = __get_PRIMASK(); \ + __disable_irq(); \ + }) + +#define local_irq_restore(x) \ + __set_PRIMASK(x) +#else +#warning "local_irq_{save,restore}() not implemented" +#define local_irq_save(x) +#define local_irq_restore(x) +#endif |