#endif
#include "mpu_wrappers.h"
+#include "esp_system.h"
/*
* Setup the stack of a new task so it is ready to be placed under the
* non-FreeRTOS-specific code, and behave the same as
* pvPortMalloc()/vPortFree().
*/
-void *pvPortMalloc( size_t xSize ) PRIVILEGED_FUNCTION;
-void vPortFree( void *pv ) PRIVILEGED_FUNCTION;
-void vPortInitialiseBlocks( void ) PRIVILEGED_FUNCTION;
-size_t xPortGetFreeHeapSize( void ) PRIVILEGED_FUNCTION;
-size_t xPortGetMinimumEverFreeHeapSize( void ) PRIVILEGED_FUNCTION;
+#define pvPortMalloc malloc
+#define vPortFree free
+#define xPortGetFreeHeapSize esp_get_free_heap_size
+#define xPortGetMinimumEverFreeHeapSize esp_get_minimum_free_heap_size
/*
* Setup the hardware ready for the scheduler to take control. This generally
*/
BaseType_t xPortInIsrContext();
+/*
+ * This function will be called in High prio ISRs. Returns true if the current core was in ISR context
+ * before calling into high prio ISR context.
+ */
+BaseType_t xPortInterruptedFromISRContext();
+
/*
* The structures and methods of manipulating the MPU are contained within the
* port layer.
/* Multi-core: get current core ID */
static inline uint32_t IRAM_ATTR xPortGetCoreID() {
int id;
- asm (
+ __asm__ (
"rsr.prid %0\n"
" extui %0,%0,13,1"
:"=r"(id));
}
#endif
+void uxPortCompareSetExtram(volatile uint32_t *addr, uint32_t compare, uint32_t *set);
+
#endif /* PORTABLE_H */