11#if defined(ESP_PLATFORM) || defined(ARDUINO_ARCH_ESP32)
12#include <freertos/FreeRTOS.h>
13#include <freertos/portmacro.h>
14#define CORIUM_HAS_ESP32_CRITICAL 1
15#elif defined(__arm__) || defined(__thumb__)
16#if __has_include(<cmsis_compiler.h>)
17#include <cmsis_compiler.h>
18#define CORIUM_HAS_ARM_CMSIS 1
47#if defined(CORIUM_HAS_ESP32_CRITICAL)
48 portENTER_CRITICAL(&_mux);
49#elif defined(CORIUM_HAS_ARM_CMSIS)
50 _primask = __get_PRIMASK();
60#if defined(CORIUM_HAS_ESP32_CRITICAL)
61 portEXIT_CRITICAL(&_mux);
62#elif defined(CORIUM_HAS_ARM_CMSIS)
63 __set_PRIMASK(_primask);
76#if defined(CORIUM_HAS_ESP32_CRITICAL)
77 static inline portMUX_TYPE _mux = portMUX_INITIALIZER_UNLOCKED;
78#elif defined(CORIUM_HAS_ARM_CMSIS)
79 uint32_t _primask = 0;
RAII interrupt locking helper disabling interrupts upon construction and restoring them upon destruct...
Definition InterruptLock.hpp:26
InterruptLock & operator=(const InterruptLock &)=delete
InterruptLock(InterruptLock &&)=delete
void lock() noexcept
Definition InterruptLock.hpp:44
InterruptLock(const InterruptLock &)=delete
~InterruptLock() noexcept
Definition InterruptLock.hpp:33
bool isLocked() const noexcept
Definition InterruptLock.hpp:69
InterruptLock & operator=(InterruptLock &&)=delete
InterruptLock() noexcept
Definition InterruptLock.hpp:28
void unlock() noexcept
Definition InterruptLock.hpp:57
Definition CanAdapter.hpp:16