#
# Copyright (c) 2018 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#
config CMSIS_RTOS_V1
	bool "CMSIS RTOS v1 API"
	default n
	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 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
