#
# Copyright (c) 2018 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#
config CMSIS_RTOS_V1
	bool "CMSIS RTOS v1 API"
	depends on THREAD_CUSTOM_DATA
	depends on POLL
	help
	  This enables CMSIS RTOS v1 API support. This is an OS-integration
	  layer which allows applications using CMSIS RTOS APIs to build on
	  Zephyr.

if CMSIS_RTOS_V1
config CMSIS_MAX_THREAD_COUNT
	int "Maximum thread count in CMSIS RTOS application"
	default 10
	range 0 255
	help
	  Mention max number of threads in CMSIS RTOS compliant application.
	  There's a limitation on the number of threads due to memory
	  related constraints.

config CMSIS_THREAD_MAX_STACK_SIZE
	int "Max stack size threads can be allocated in CMSIS RTOS application"
	default 4096 if COVERAGE
	default 512
	help
	  Mention max stack size threads can be allocated in CMSIS RTOS application.

config CMSIS_TIMER_MAX_COUNT
	int "Maximum timer count in CMSIS application"
	default 5
	range 0 255
	help
	  Mention maximum number of timers in CMSIS compliant application.

config CMSIS_MUTEX_MAX_COUNT
	int "Maximum mutex count in CMSIS application"
	default 5
	range 0 255
	help
	  Mention maximum number of mutexes in CMSIS compliant application.

config CMSIS_SEMAPHORE_MAX_COUNT
	int "Maximum semaphore count in CMSIS application"
	default 5
	range 0 255
	help
	  Mention maximum number of semaphores in CMSIS compliant application.
endif
