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

config SYSTEM_INIT
	tristate "System Init"
	default n
	depends on LIBC_EXECFUNCS
	depends on SCHED_CHILD_STATUS
	---help---
		Enable system init.

if SYSTEM_INIT

#
# Basic
#

config SYSTEM_INIT_PRIORITY
	int "Thread priority"
	default 100

config SYSTEM_INIT_STACKSIZE
	int "Stack size"
	default DEFAULT_TASK_STACKSIZE

config SYSTEM_INIT_PROGNAME
	string "Program name"
	default "init"

#
# RC
#

config SYSTEM_INIT_RC_LINE_MAX
	int "Max line length of RC file"
	default 128
	---help---
		Maximum line length of RC file.
		More details: https://android.googlesource.com/platform/system/core/+/master/init/README.md

#
# Action
#

config SYSTEM_INIT_ACTION_CMD_ARGS_MAX
	int "Max number of command arguments"
	default 8
	---help---
		Maximum number of command arguments.
		Form:
		```
		on <event> [&& <event>]*
		   <command>
		   <command>
		   <command>
		   ...
		```

config SYSTEM_INIT_ACTION_WARN_SLOW
	int "Warn if command takes too long"
	default 50
	depends on SYSTEM_INIT_WARN
	---help---
		Warning if command took more than `SYSTEM_INIT_ACTION_WARN_SLOW` ms.

config SYSTEM_INIT_ACTION_EVENTS_MAX
	int "Max number of events"
	default 1
	range 1 64
	---help---
		Maximum number of event and action events.
		See action.h:
		```
		struct action_s
		{
		  ...
		  struct action_event_s events[CONFIG_SYSTEM_INIT_ACTION_EVENTS_MAX];
		  ...
		};
		```

#
# Service
#

config SYSTEM_INIT_SERVICE_ARGS_MAX
	int "Max number of service arguments"
	default 8
	range 3 64
	---help---
		Maximum number of service arguments,
		including "name", "pathname" and key word "service"(at least 3). Form:
		```
		service <name> <pathname> [ <argument> ]*
		   <option>
		   <option>
		   ...
		```

config SYSTEM_INIT_SERVICE_RESTART_PERIOD
	int "Service restart period in ms"
	default 5000

#
# Log level
#

config SYSTEM_INIT_ERR
	bool "Enable error log"
	default !DEFAULT_SMALL

config SYSTEM_INIT_WARN
	bool "Enable warning log"
	depends on SYSTEM_INIT_ERR

config SYSTEM_INIT_INFO
	bool "Enable info log"
	depends on SYSTEM_INIT_WARN

config SYSTEM_INIT_DEBUG
	bool "Enable debug log"
	depends on SYSTEM_INIT_INFO

endif