aboutsummaryrefslogtreecommitdiff
path: root/nuttx/sched/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/sched/Kconfig')
-rw-r--r--nuttx/sched/Kconfig559
1 files changed, 0 insertions, 559 deletions
diff --git a/nuttx/sched/Kconfig b/nuttx/sched/Kconfig
deleted file mode 100644
index 097dd1993..000000000
--- a/nuttx/sched/Kconfig
+++ /dev/null
@@ -1,559 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see misc/tools/kconfig-language.txt.
-#
-
-config MSEC_PER_TICK
- int "Milliseconds per system timer tick"
- 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 (MSEC)"
- 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.
- If enabled, then the board-specific logic must provide the following
- functions (see include/sched.h):
-
- void sched_note_start(FAR _TCB *tcb);
- void sched_note_stop(FAR _TCB *tcb);
- void sched_note_switch(FAR _TCB *pFromTcb, FAR _TCB *pToTcb);
-
-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 SCHED_HAVE_PARENT
- bool "Support parent/child task relationships"
- default n
- ---help---
- Remember the ID of the parent task when a new child task is
- created. This support enables some additional features (such as
- SIGCHLD) and modifies the behavior of other interfaces. For
- example, it makes waitpid() more standards complete by restricting
- the waited-for tasks to the children of the caller. Default:
- disabled.
-
-config SCHED_CHILD_STATUS
- bool "Retain child exit status"
- default n
- depends on SCHED_HAVE_PARENT
- ---help---
- If this option is selected, then the exit status of the child task
- will be retained after the child task exits. This option should be
- selected if you require knowledge of a child process' exit status.
- Without this setting, wait(), waitpid() or waitid() may fail. For
- example, if you do:
-
- 1) Start child task
- 2) Wait for exit status (using wait(), waitpid(), or waitid()).
-
- This can fail because the child task may run to completion before
- the wait begins. There is a non-standard work-around in this case:
- The above sequence will work if you disable pre-emption using
- sched_lock() prior to starting the child task, then re-enable pre-
- emption with sched_unlock() after the wait completes. This works
- because the child task is not permitted to run until the wait is in
- place.
-
- The standard solution would be to enable SCHED_CHILD_STATUS. In
- this case the exit status of the child task is retained after the
- child exits and the wait will successful obtain the child task's
- exit status whether it is called before the child task exits or not.
-
- Warning: If you enable this feature, then your application must
- either (1) take responsibility for reaping the child status with wait(),
- waitpid(), or waitid(), or (2) suppress retention of child status.
- If you do not reap the child status, then you have a memory leak and
- your system will eventually fail.
-
- Retention of child status can be suppressed on the parent using logic like:
-
- struct sigaction sa;
-
- sa.sa_handler = SIG_IGN;
- sa.sa_flags = SA_NOCLDWAIT;
- int ret = sigaction(SIGCHLD, &sa, NULL);
-
-config PREALLOC_CHILDSTATUS
- int "Number of pre-allocated child status"
- default 0
- depends on SCHED_CHILD_STATUS
- ---help---
- To prevent runaway child status allocations and to improve
- allocation performance, child task exit status structures are pre-
- allocated when the system boots. This setting determines the number
- of child status structures that will be pre-allocated. If this
- setting is not defined or if it is defined to be zero then a value
- of 2*MAX_TASKS is used.
-
- Note that there cannot be more that CONFIG_MAX_TASKS tasks in total.
- However, the number of child status structures may need to be
- significantly larger because this number includes the maximum number
- of tasks that are running PLUS the number of tasks that have exit'ed
- without having their exit status reaped (via wait(), waitid(), or
- waitpid()).
-
- Obviously, if tasks spawn children indefinitely and never have the
- exit status reaped, then you may have a memory leak! If you enable
- the SCHED_CHILD_STATUS feature, then your application must take
- responsibility for either (1) reaping the child status with wait(),
- waitpid(), or waitid() or it must (2) suppress retention of child
- status. Otherwise, your system will eventually fail.
-
- Retention of child status can be suppressed on the parent using logic like:
-
- struct sigaction sa;
-
- sa.sa_handler = SIG_IGN;
- sa.sa_flags = SA_NOCLDWAIT;
- int ret = sigaction(SIGCHLD, &sa, NULL);
-
-config DEBUG_CHILDSTATUS
- bool "Enable Child Status Debug Output"
- default n
- depends on SCHED_CHILD_STATUS && DEBUG
- ---help---
- Very detailed... I am sure that you do not want this.
-
-config JULIAN_TIME
- bool "Enables Julian time conversions"
- default n
- ---help---
- Enables Julian time conversions
-
-config START_YEAR
- int "Start year"
- default 2013
-
-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 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 "Number of 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 SCHED_WORKQUEUE
- bool "Enable worker thread"
- default n
- depends on !DISABLE_SIGNALS
- ---help---
- Create a dedicated "worker" thread to handle delayed processing from interrupt
- handlers. This feature is required for some drivers but, if there are no
- complaints, can be safely disabled. The worker thread also performs
- garbage collection -- completing any delayed memory deallocations from
- interrupt handlers. If the worker thread is disabled, then that clean up will
- be performed by the IDLE thread instead (which runs at the lowest of priority
- and may not be appropriate if memory reclamation is of high priority).
-
-config SCHED_WORKPRIORITY
- int "Worker thread priority"
- default 192
- depends on SCHED_WORKQUEUE
- ---help---
- The execution priority of the worker thread. Default: 192
-
-config SCHED_WORKPERIOD
- int "Worker thread period"
- default 50000
- depends on SCHED_WORKQUEUE
- ---help---
- How often the worker thread checks for work in units of microseconds.
- Default: 50*1000 (50 MS).
-
-config SCHED_WORKSTACKSIZE
- int "Worker thread stack size"
- default 2048
- depends on SCHED_WORKQUEUE
- ---help---
- The stack size allocated for the worker thread. Default: 2K.
-
-config SCHED_LPWORK
- bool "Enable a lower priority worker thread"
- default n
- depends on SCHED_WORKQUEUE
- ---help---
- If SCHED_WORKQUEUE is defined, then a single work queue is created by
- default. If SCHED_LPWORK is also defined then an additional, lower-
- priority work queue will also be created. This lower priority work
- queue is better suited for more extended processing (such as file system
- clean-up operations)
-
-config SCHED_LPWORKPRIORITY
- int "Lower priority worker thread priority"
- default 50
- depends on SCHED_LPWORK
- ---help---
- The execution priority of the lopwer priority worker thread. Default: 192
-
-config SCHED_LPWORKPERIOD
- int "Lower priority worker thread period"
- default 50000
- depends on SCHED_LPWORK
- ---help---
- How often the lower priority worker thread checks for work in units
- of microseconds. Default: 50*1000 (50 MS).
-
-config SCHED_LPWORKSTACKSIZE
- int "Lower priority worker thread stack size"
- default 2048
- depends on SCHED_LPWORK
- ---help---
- The stack size allocated for the lower priority worker thread. Default: 2K.
-
-config SCHED_WAITPID
- bool "Enable waitpid() API"
- default n
- ---help---
- Enables the waitpid() interface in a default, non-standard mode
- (non-standard in the sense that the waited for PID need not be child
- of the caller). If SCHED_HAVE_PARENT is also defined, then this
- setting will modify the behavior or waitpid() (making more spec
- compliant) and will enable the waitid() and wait() interfaces as
- well.
-
-config SCHED_STARTHOOK
- bool "Enable startup hook"
- default n
- ---help---
- Enable a non-standard, internal OS API call task_starthook().
- task_starthook() registers a function that will be called on task
- startup before that actual task entry point is called. The
- starthook is useful, for example, for setting up automatic
- configuration of C++ constructors.
-
-config SCHED_ATEXIT
- bool "Enable atexit() API"
- default n
- ---help---
- Enables the atexit() API
-
-config SCHED_ATEXIT_MAX
- int "Max number of atexit() functions"
- default 1
- depends on SCHED_ATEXIT && !SCHED_ONEXIT
- ---help---
- By default if SCHED_ATEXIT is selected, only a single atexit() function
- is supported. That number can be increased by defined this setting to
- the number that you require.
-
- If both SCHED_ONEXIT and SCHED_ATEXIT are selected, then atexit() is built
- on top of the on_exit() implementation. In that case, SCHED_ONEXIT_MAX
- determines the size of the combined number of atexit(0) and on_exit calls
- and SCHED_ATEXIT_MAX is not used.
-
-config SCHED_ONEXIT
- bool "Enable on_exit() API"
- default n
- ---help---
- Enables the on_exit() API
-
-config SCHED_ONEXIT_MAX
- int "Max number of on_exit() functions"
- default 1
- depends on SCHED_ONEXIT
- ---help---
- By default if SCHED_ONEXIT is selected, only a single on_exit() function
- is supported. That number can be increased by defined this setting to the
- number that you require.
-
- If both SCHED_ONEXIT and SCHED_ATEXIT are selected, then atexit() is built
- on top of the on_exit() implementation. In that case, SCHED_ONEXIT_MAX
- determines the size of the combined number of atexit(0) and on_exit calls.
-
-config USER_ENTRYPOINT
- string "Application entry point"
- default "user_start"
- ---help---
- The name of the entry point for user applications. For the example
- applications this is of the form 'app_main' where 'app' is the application
- name. If not defined, USER_ENTRYPOINT defaults to "user_start."
-
-config DISABLE_OS_API
- bool "Disable NuttX interfaces"
- default y
- ---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_ENVIRON
- bool "Disable environment variable support"
- depends on DISABLE_OS_API
- default n
-
-if !DISABLE_SIGNALS
-comment "Signal Numbers"
-
-config SIG_SIGUSR1
- int "SIGUSR1"
- default 1
- ---help---
- Value of standard user signal 1 (SIGUSR1). Default: 1
-
-config SIG_SIGUSR2
- int "SIGUSR2"
- default 2
- ---help---
- Value of standard user signal 2 (SIGUSR2). Default: 2
-
-config SIG_SIGALARM
- int "SIGALRM"
- default 3
- ---help---
- Default the signal number used with POSIX timers (SIGALRM).
- Default: 3
-
-config SIG_SIGCHLD
- int "SIGCHLD"
- default 4
- depends on SCHED_HAVE_PARENT
- ---help---
- The SIGCHLD signal is sent to the parent of a child process when it
- exits, is interrupted (stopped), or resumes after being interrupted.
- Default: 4
-
-config SIG_SIGCONDTIMEDOUT
- int "SIGCONDTIMEDOUT"
- default 16
- depends on !DISABLE_PTHREAD
- ---help---
- This non-standard signal number is used the implementation of
- pthread_cond_timedwait(). Default 16.
-
-config SIG_SIGWORK
- int "SIGWORK"
- default 17
- depends on SCHED_WORKQUEUE
- ---help---
- SIGWORK is a non-standard signal used to wake up the internal NuttX
- worker thread. This setting specifies the signal number that will be
- used for SIGWORK. Default: 17
-
-endif
-
-comment "Sizes of configurable things (0 disables)"
-
-config MAX_TASKS
- int "Max number of 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 "Maximum number of pthread keys"
- default 4
- ---help---
- The number of items of thread-
- specific data that can be retained
-
-config NFILE_DESCRIPTORS
- int "Maximum number of file descriptors per task"
- default 16
- ---help---
- The maximum number of file descriptors per task (one for each open)
-
-config NFILE_STREAMS
- int "Maximum number of FILE streams"
- default 16
- ---help---
- The maximum number of streams that can be fopen'ed
-
-config NAME_MAX
- int "Maximum size of a file name"
- default 32
- ---help---
- The maximum size of a file name.
-
-config PREALLOC_MQ_MSGS
- int "Number of 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 "Maximum number of watchdog parameters"
- default 4
- ---help---
- Maximum number of parameters that can be passed to a watchdog handler
-
-config PREALLOC_WDOGS
- int "Number of pre-allocated watchdog timers"
- 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 "Number of pre-allocated POSIX 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 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
-