#
# 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 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
