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

config POSIX_MAX_FDS
	int "Maximum number of open file descriptors"
	default 16 if POSIX_API
	default 4
	help
	  Maximum number of open file descriptors, this includes
	  files, sockets, special devices, etc.

config POSIX_API
	depends on !ARCH_POSIX
	bool "POSIX APIs"
	help
	  Enable mostly-standards-compliant implementations of
	  various POSIX (IEEE 1003.1) APIs.

config PTHREAD_IPC
	bool "POSIX pthread IPC API"
	default y if POSIX_API
	help
	  This enables a mostly-standards-compliant implementation of
	  the pthread mutex, condition variable and barrier IPC
	  mechanisms.

if PTHREAD_IPC
config MAX_PTHREAD_COUNT
	int "Maximum simultaneously active pthread count in POSIX application"
	default 5
	range 0 255
	help
	  Maximum number of simultaneously active threads in a POSIX application.

config SEM_VALUE_MAX
	int "Maximum semaphore limit"
	default 32767
	range 1 32767
	help
	  Maximum semaphore count in POSIX compliant Application.

endif # PTHREAD_IPC

config POSIX_CLOCK
	bool "POSIX clock, timer, and sleep APIs"
	default y if POSIX_API
	help
	  This enables POSIX clock\_\*(), timer\_\*(), and \*sleep()
	  functions.

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

config POSIX_MQUEUE
	bool "Enable POSIX message queue"
	default y if POSIX_API
	help
	  This enabled POSIX message queue related APIs.

if POSIX_MQUEUE
config MSG_COUNT_MAX
	int "Maximum number of messages in message queue"
	default 16
	help
	  Mention maximum number of messages in message queue in POSIX compliant
	  application.

config MSG_SIZE_MAX
	int "Maximum size of a message"
	default 16
	help
	  Mention maximum size of message in bytes.

config MQUEUE_NAMELEN_MAX
	int "Maximum size of a name length"
	default 16
	range 2 255
	help
	  Mention length of message queue name in number of characters.

endif

config POSIX_FS
	bool "Enable POSIX file system API support"
	default y if POSIX_API
	depends on FILE_SYSTEM
	help
	  This enables POSIX style file system related APIs.

config POSIX_MAX_OPEN_FILES
	int "Maximum number of open file descriptors"
	default 16
	depends on POSIX_FS
	help
	  Maximum number of open files. Note that this setting
	  is additionally bounded by CONFIG_POSIX_MAX_FDS.

# The name of this option is mandated by zephyr_interface_library_named
# cmake directive.
config APP_LINK_WITH_POSIX_SUBSYS
	bool "Make POSIX headers available to application"
	default y
	depends on POSIX_API
	help
	  Add POSIX subsystem header files to the 'app' include path.
