#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#

config MSEC_PER_TICK
	int "tick timer"
	default 10
	---help---
		The default system timer is 100Hz or MSEC_PER_TICK=10.  This setting
		may be defined to inform NuttX that the processor hardware is providing
		system timer interrupts at some interrupt interval other than 10 msec.

config RR_INTERVAL
	int "round robin timeslice"
	default 0
	---help---
		The round robin timeslice will be set this number of milliseconds;
		Round robin scheduling can be disabled by setting this value to zero.

config SCHED_INSTRUMENTATION
	bool "Monitor system performance"
	default n
	---help---
		enables instrumentation in scheduler to monitor system performance.

config TASK_NAME_SIZE
	int "Maximum task name size"
	default 32
	---help---
		Spcifies that maximum size of a task name to save in the TCB.
		Useful if scheduler instrumentation is selected.  Set to zero to
		disable.

config JULIAN_TIME
	bool "Enables Julian time conversions"
	default n
	---help---
		Enables Julian time conversions

config START_YEAR
	int "start year"
	default 2010

config START_MONTH
	int "start month"
	default 1
	
config START_DAY
	int "start day"
	default 1

config DEV_CONSOLE
	bool "Enable /dev/console"
	default y
	---help---
		Set if architecture-specific logic provides /dev/console.  Enables
		stdout, stderr, stdin.

config DEV_LOWCONSOLE
	bool "enable low-level serial console"
	default n
	---help---
		Use the simple, low-level, write-only serial console driver (minimul support)

config MUTEX_TYPES:
	bool "Enable mutex types"
	default n
	---help---
		Set to enable support for recursive and errorcheck mutexes. Enables
		pthread_mutexattr_settype().

config PRIORITY_INHERITANCE 
	bool "Enable priority inheritance "
	default n
	---help---
		Set to enable support for priority inheritance on mutexes and semaphores. 

config SEM_PREALLOCHOLDERS 
	int "Pre-allocated holders"
	default 16
	depends on PRIORITY_INHERITANCE
	---help---
		This setting is only used if priority inheritance is enabled.
		It defines the maximum number of different threads (minus one) that
		can take counts on a semaphore with priority inheritance support.
		This may be set to zero if priority inheritance is disabled OR if you
		are only using semaphores as mutexes (only one holder) OR if no more
		than two threads participate using a counting semaphore.

config SEM_NNESTPRIO
	int "Maximum number of higher priority threads"
	default 16
	depends on PRIORITY_INHERITANCE
	---help---
		If priority inheritance is enabled, then this setting is the 
		maximum number of higher priority threads (minus 1) than can be
		waiting for another thread to release a count on a semaphore.
		This value may be set to zero if no more than one thread is
		expected to wait for a semaphore.

config FDCLONE_DISABLE
	bool "Disable cloning of file descriptors"
	default n
	---help---
	Disable cloning of all file descriptors
	by task_create() when a new task is started.  If set, all
	files/drivers will appear to be closed in the new task.

config FDCLONE_STDIO
	bool "Disable clone file descriptors without stdio"
	default n
	---help---
		Disable cloning of all but the first three file descriptors (stdin,
		stdout, stderr) by task_create() when a new task is started. If set,
		all files/drivers will appear to be closed in the new task except
		for stdin, stdout, and stderr.

config SDCLONE_DISABLE
	bool "Disable cloning of socket descriptors"
	default n
	---help---
	Disable cloning of all socket
	desciptors by task_create() when a new task is started. If
	set, all sockets will appear to be closed in the new task.

config DISABLE_OS_API
	bool "Disable NuttX interfaces"
	default n
	---help---
	The following can be used to disable categories of
	APIs supported by the OS.  If the compiler supports
	weak functions, then it should not be necessary to
	disable functions unless you want to restrict usage
	of those APIs.

	There are certain dependency relationships in these
	features.

	o mq_notify logic depends on signals to awaken tasks
	  waiting for queues to become full or empty.
	o pthread_condtimedwait() depends on signals to wake
	  up waiting tasks.

config DISABLE_CLOCK
	bool "Disable clock interfaces"
	depends on DISABLE_OS_API
	default n

config DISABLE_POSIX_TIMERS
	bool "Disable POSIX timers"
	depends on DISABLE_OS_API
	default n

config DISABLE_PTHREAD
	bool "Disable pthread support"
	depends on DISABLE_OS_API
	default n

config DISABLE_SIGNALS
	bool "Disable signal support"
	depends on DISABLE_OS_API
	default n

config DISABLE_MQUEUE
	bool "Disable POSIX message queue support"
	depends on DISABLE_OS_API
	default n

config DISABLE_MOUNTPOINT
	bool "Disable support for mount points"
	depends on DISABLE_OS_API
	default n

config DISABLE_ENVIRON
	bool "Disable environment variable support"
	depends on DISABLE_OS_API
	default n

config DISABLE_POLL
	bool "Disable driver poll interfaces"
	depends on DISABLE_OS_API
	default n

comment "Sizes of configurable things (0 disables)"

config MAX_TASKS
	int "Max tasks"
	default 32
	---help---
		The maximum number of simultaneously active tasks. This value must be
		a power of two.

config MAX_TASK_ARGS
	int "Maximum number of task arguments"
	default 4
	---help---
		This controls the maximum number of of parameters that a task may
		receive (i.e., maxmum value of 'argc')

config NPTHREAD_KEYS
	int "Number of pthread keys"
	default 4
	---help---
		The number of items of thread-
		specific data that can be retained

config NFILE_DESCRIPTORS
	int "Max file descriptors"
	default 16
	---help---
		The maximum number of file
		descriptors (one for each open)

config NFILE_STREAMS
	int "Max file streams"
	default 16
	---help---
		The maximum number of streams that can be fopen'ed

config NAME_MAX
	int "name max"
	default 32
	---help---
	The maximum size of a file name.

config PREALLOC_MQ_MSGS
	int "Pre-allocated messages"
	default 32
	---help---
		The number of pre-allocated message structures.  The system manages
		a pool of preallocated message structures to minimize dynamic allocations

config MQ_MAXMSGSIZE
	int "Maximum message size"
	default 32
	---help---
		Message structures are allocated with a fixed payload size given by this
		setting (does not include other message structure overhead.

config MAX_WDOGPARMS
	int "max watchdog parms"
	default 4
	---help---
		Maximum number of parameters that
		can be passed to a watchdog handler

config PREALLOC_WDOGS
	int "Pre-allocated watchdogs"
	default 32
	---help---
		The number of pre-allocated watchdog structures.  The system manages a
		pool of preallocated watchdog structures to minimize dynamic allocations
	
config PREALLOC_TIMERS
	int "Pre-allocated timers"
	default 8
	---help---
		The number of pre-allocated POSIX timer structures.  The system manages a
		pool of preallocated timer structures to minimize dynamic allocations.  Set to
		zero for all dynamic allocations.

comment "Stack and heap information"

config BOOT_RUNFROMFLASH
	bool "boot run from flash"
	default n
	---help---
		Some configurations support XIP operation from FLASH but must copy
		initialized .data sections to RAM

config BOOT_COPYTORAM
	bool "boot copy to ram"
	default n
	---help---
		Some configurations boot in FLASH
		but copy themselves entirely into RAM for better performance.

config CUSTOM_STACK
	bool "Enable custom stack"
	default n
	---help---
		The up_ implementation will handle all stack operations outside of the
		nuttx model.  This is necessary for certain architectures that have
		have hardware stacks (such as the 8051 family).

config STACK_POINTER
	hex "The initial stack pointer"
	---help---
		The initial stack pointer (arm7tdmi only).

config IDLETHREAD_STACKSIZE
	int "Idle thread stack size"
	default 1024
	---help---
		The size of the initial stack used by the IDLE thread.  The IDLE thread
		is the thread that (1) performs the inital boot of the system up to the
		point where user_start() is spawned, and (2) there after is the IDLE
		thread that executes only when there is no other thread ready to run.

config USERMAIN_STACKSIZE
	int "Main thread stack size"
	default 2048
	---help---
		The size of the stack to allocate for the main user thread that begins at
		the user_start() entry point.

config PTHREAD_STACK_MIN
	int "Minimum pthread stack size"
	default 256
	---help---
		Minimum pthread stack size

config PTHREAD_STACK_DEFAULT
	int "Default pthread stack size"
	default 2048
	---help---
		Default pthread stack size

