#ifndef INC_IMC_IMC_KERNEL_H_
#define INC_IMC_IMC_KERNEL_H_

#define imcUSE_IMC_KERNEL 1

#define imcMAX_NUM_TASKS 5
#define imcSTACK_SIZE (1024)

#define IMC_GLOBAL __attribute__((section(".imc_global")))

#define portSVC_IMC_REQUEST_CHECKPOINT 6

#define imcREQUEST_CHECKPOINT() \
    {                           \
        __asm("  svc #6");      \
    }

#include "cmsis_os.h"

void imcInit();

osThreadId_t imcOsThreadNew(osThreadFunc_t func, void *argument, const osThreadAttr_t *attr);

#endif