#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

config LIBUV
	bool "libuv asynchronous I/O Library"
	default n
	---help---
		Enable build for libuv asynchronous I/O Library

if LIBUV

config LIBUV_THREADPOOL_SIZE
	int "libuv default thread pool size"
	default 1

config LIBUV_THREAD_STACKSIZE
	int "libuv worker thread stack size"
	default 8192

config LIBUV_THREADPOOL_PRIORITY
	int "libuv default thread pool priority"
	default 100

config LIBUV_STREAM_READ_BUF_SIZE
	int "libuv stream read buffer size"
	default 4096

config LIBUV_BACKEND_EPOLL
	bool "Using epoll backend in libuv"
	default y

if LIBUV_BACKEND_EPOLL

config LIBUV_MAX_EPOLL_EVENTS
	int "libuv max epoll events"
	default 8

config LIBUV_PREP_EVENT_SIZE
	int "libuv prep event size"
	default 1

endif

config LIBUV_HANDLE_BACKTRACE
	bool "Record backtrace for libuv handle"
	default n
	depends on LIBC_BACKTRACE_DEPTH > 0
	---help---
		When enabled, uv_print_all_handles & uv_print_active_handles will print
		handle alloc backtrace additionally.
		it's useful for libuv handle leak debugging

choice
	prompt "libuv utils"
	default LIBUV_UTILS_NONE

config LIBUV_UTILS_NONE
	bool "none"

config LIBUV_UTILS_TEST
	bool "uv_run_tests"
	select LIBC_EXECFUNCS
	depends on TLS_NCLEANUP > 0

config LIBUV_UTILS_BENCHMARK
	bool "uv_run_benchmarks"
	select LIBC_EXECFUNCS

endchoice

if !LIBUV_UTILS_NONE

config LIBUV_UTILS_PRIORITY
	int "libuv utils priority"
	default 100

config LIBUV_UTILS_STACKSIZE
	int "libuv utils stack size"
	default 8192
endif

endif