2017-02-10 16:32:55 +01:00
|
|
|
#
|
|
|
|
# For a description of the syntax of this configuration file,
|
|
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
|
|
#
|
|
|
|
|
|
|
|
config ARCH_HAVE_TLS
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Selected by the configuration system if the current architecture
|
|
|
|
supports TLS.
|
|
|
|
|
|
|
|
if ARCH_HAVE_TLS
|
|
|
|
|
2017-02-10 17:04:56 +01:00
|
|
|
menu "Thread Local Storage (TLS)"
|
2017-02-10 16:32:55 +01:00
|
|
|
|
2017-02-10 17:04:56 +01:00
|
|
|
config TLS
|
2017-02-10 16:32:55 +01:00
|
|
|
bool "Thread Local Storage (TLS)"
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Build in support for stack based thread local storage (TLS).
|
|
|
|
|
|
|
|
if TLS
|
|
|
|
|
|
|
|
config TLS_LOG2_MAXSTACK
|
|
|
|
int "Maximum stack size (log2)"
|
|
|
|
default 13
|
|
|
|
range 11 24
|
|
|
|
---help---
|
|
|
|
Stack based TLS works by fetch thread information from the beginning
|
|
|
|
of the stack memory allocation. In order to do this, the memory
|
|
|
|
must be aligned in such a way that the executing logic can simply
|
|
|
|
masking the current stack pointer to get the beginning of the stack
|
|
|
|
allocation.
|
|
|
|
|
|
|
|
This setting specifies the alignment of the stack as a power of 2:
|
|
|
|
11=2KB, 12=4KB, 13=8KB, etc. The exact alignment is not so critical
|
|
|
|
except that (1) a very large value can cause you to run out of
|
|
|
|
alignable memory (and fail memory allocations), and (2) smaller
|
|
|
|
values will limit the maximum size of the stack (hence the naming
|
|
|
|
of this configuration value).
|
|
|
|
|
|
|
|
config TLS_NELEM
|
|
|
|
int "Number of TLS elements"
|
|
|
|
default 1
|
|
|
|
---help---
|
|
|
|
The number of unique TLS elements. These can be accessed with
|
|
|
|
the user library functions tls_get_element() and tls_set_element().
|
|
|
|
|
|
|
|
endif # TLS
|
2017-02-10 17:04:56 +01:00
|
|
|
endmenu # Thread Local Storage (TLS)
|
2017-02-10 16:32:55 +01:00
|
|
|
endif # ARCH_HAVE_TLS
|