/*
 * Copyright (c) 2018 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <kernel_structs.h>
#include <cmsis_os.h>
#include <ksched.h>

extern const k_tid_t _main_thread;

/**
 * @brief Get the RTOS kernel system timer counter
 */
uint32_t osKernelSysTick(void)
{
	return k_cycle_get_32();
}

/**
 * @brief Initialize the RTOS Kernel for creating objects.
 */
osStatus osKernelInitialize(void)
{
	return osOK;
}

/**
 * @brief Start the RTOS Kernel.
 */
osStatus osKernelStart(void)
{
	 if (_is_in_isr()) {
		 return osErrorISR;
	 }
	 return osOK;
}

/**
 * @brief Check if the RTOS kernel is already started.
 */
int32_t osKernelRunning(void)
{
	return _has_thread_started(_main_thread);
}

/*
 * Copyright (c) 2018 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <kernel_structs.h>
#include <cmsis_os.h>
#include <ksched.h>

extern const k_tid_t _main_thread;

/**
 * @brief Get the RTOS kernel system timer counter
 */
uint32_t osKernelSysTick(void)
{
	return k_cycle_get_32();
}

/**
 * @brief Initialize the RTOS Kernel for creating objects.
 */
osStatus osKernelInitialize(void)
{
	return osOK;
}

/**
 * @brief Start the RTOS Kernel.
 */
osStatus osKernelStart(void)
{
	return osOK;
}

/**
 * @brief Check if the RTOS kernel is already started.
 */
int32_t osKernelRunning(void)
{
	return _has_thread_started(_main_thread);
}

--- 
+++ 
@@ -31,7 +31,10 @@
  */
 osStatus osKernelStart(void)
 {
-	return osOK;
+	 if (_is_in_isr()) {
+		 return osErrorISR;
+	 }
+	 return osOK;
 }
 
 /**
lib/cmsis_rtos_v1: Check if osKernelStart() is called from ISR

Check if osKernelStart() is called from ISR and return error code
appropriately.

Signed-off-by: Spoorthi K <c4ff46ff4cba9c2c6c6c9d55497ae534451b4309@intel.com>
