summaryrefslogtreecommitdiff
path: root/nuttx/libc/Kconfig
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-03-06 00:02:07 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-03-06 00:02:07 +0000
commit9e9de3d19ebf1890bfccd0bf63fa0209e2ec9359 (patch)
tree29fb311b41914129b7f666079bef010edd8afa65 /nuttx/libc/Kconfig
parent7b06c73d1d766cd3376be29dccbd28a16e3f385b (diff)
downloadnuttx-9e9de3d19ebf1890bfccd0bf63fa0209e2ec9359.tar.gz
nuttx-9e9de3d19ebf1890bfccd0bf63fa0209e2ec9359.tar.bz2
nuttx-9e9de3d19ebf1890bfccd0bf63fa0209e2ec9359.zip
Implement user-mode work queues
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5712 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/libc/Kconfig')
-rw-r--r--nuttx/libc/Kconfig113
1 files changed, 112 insertions, 1 deletions
diff --git a/nuttx/libc/Kconfig b/nuttx/libc/Kconfig
index 3aee837c3..a549ced45 100644
--- a/nuttx/libc/Kconfig
+++ b/nuttx/libc/Kconfig
@@ -346,7 +346,118 @@ config ARCH_BZERO
endif
-comment "Non-standard Helper Functions"
+comment "Non-standard Library Support"
+
+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).
+
+if SCHED_WORKQUEUE
+
+config SCHED_HPWORK
+ bool "High priority (kernel) worker thread"
+ default y
+ ---help---
+ If SCHED_WORKQUEUE is defined, then a single, high priority work queue is
+ created by default. This high priority worker thread is intended to serve
+ as the "bottom half" for driver interrupt handling.
+
+if SCHED_HPWORK
+config SCHED_WORKPRIORITY
+ int "High priority worker thread priority"
+ default 192
+ ---help---
+ The execution priority of the worker thread. Default: 192
+
+config SCHED_WORKPERIOD
+ int "High priority worker thread period"
+ default 50000
+ ---help---
+ How often the worker thread checks for work in units of microseconds.
+ Default: 50*1000 (50 MS).
+
+config SCHED_WORKSTACKSIZE
+ int "High priority 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 "Low priority (kernel) worker thread"
+ default n
+ ---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)
+
+if SCHED_LPWORK
+
+config SCHED_LPWORKPRIORITY
+ int "Low priority worker thread priority"
+ default 50
+ ---help---
+ The execution priority of the lopwer priority worker thread. Default: 192
+
+config SCHED_LPWORKPERIOD
+ int "Low priority worker thread period"
+ default 50000
+ ---help---
+ How often the lower priority worker thread checks for work in units
+ of microseconds. Default: 50*1000 (50 MS).
+
+config SCHED_LPWORKSTACKSIZE
+ int "Low priority worker thread stack size"
+ default 2048
+ ---help---
+ The stack size allocated for the lower priority worker thread. Default: 2K.
+
+endif # SCHED_LPWORK
+endif # SCHED_HPWORK
+
+if NUTTX_KERNEL
+
+config SCHED_USRWORK
+ bool "User mode worker thread"
+ default n
+ ---help---
+ User space work queues can also be made available for deferred processing in the NuttX kernel build.
+
+if SCHED_USRWORK
+
+config SCHED_LPWORKPRIORITY
+ int "User mode priority worker thread priority"
+ default 50
+ ---help---
+ The execution priority of the lopwer priority worker thread. Default: 192
+
+config SCHED_LPWORKPERIOD
+ int "User mode worker thread period"
+ default 50000
+ ---help---
+ How often the lower priority worker thread checks for work in units
+ of microseconds. Default: 50*1000 (50 MS).
+
+config SCHED_LPWORKSTACKSIZE
+ int "User mode worker thread stack size"
+ default 2048
+ ---help---
+ The stack size allocated for the lower priority worker thread. Default: 2K.
+
+endif # SCHED_USRWORK
+endif # NUTTX_KERNEL
+endif # SCHED_WORKQUEUE
config LIB_KBDCODEC
bool "Keyboard CODEC"