zephyr/lib/posix/options/Kconfig.pthread

63 lines
2.2 KiB
Plaintext

# Copyright (c) 2017 Intel Corporation
# Copyright (c) 2023 Meta
#
# SPDX-License-Identifier: Apache-2.0
TYPE = PTHREAD
type = pthread_t
type-function = pthread_create
rsource "Kconfig.template.pooled_ipc_type"
if PTHREAD
config PTHREAD_RECYCLER_DELAY_MS
int "Delay for reclaiming dynamic pthread stacks (ms)"
default 100
help
Prior to a POSIX thread terminating via k_thread_abort(), scheduled
work is added to the system workqueue (SWQ) so that any resources
allocated by the thread (e.g. thread stack from a pool or the heap)
can be released back to the system. Because resources are also freed
on calls to pthread_create() there is no need to worry about resource
starvation.
This option sets the number of milliseconds by which to defer
scheduled work.
Note: this option should be considered temporary and will likely be
removed once a more synchronous solution is available.
config POSIX_PTHREAD_ATTR_STACKSIZE_BITS
int "Significant bits for pthread_attr_t stacksize"
range 8 31
default 23
help
This value plays a part in determining the maximum supported
pthread_attr_t stacksize. Valid stacksizes are in the range
[1, N], where N = 1 << M, and M is this configuration value.
config POSIX_PTHREAD_ATTR_GUARDSIZE_BITS
int "Significant bits for pthread_attr_t guardsize"
range 1 31
default 9
help
This value plays a part in determining the maximum supported
pthread_attr_t guardsize. Valid guardsizes are in the range
[0, N-1], where N = 1 << M, and M is this configuration value.
Actual guardsize values may be rounded-up.
config POSIX_PTHREAD_ATTR_GUARDSIZE_DEFAULT
int "Default size of stack guard area"
default 0
help
This is the default amount of space to reserve at the overflow end of a
pthread stack. Since Zephyr already supports both software-based stack
protection (canaries) and hardware-based stack protection (MMU or MPU),
this is set to 0 by default. However, a conforming application would be
required to set this to PAGESIZE. Eventually, this option might
facilitate a more dynamic approach to guard areas (via software or
hardware) but for now it simply increases the size of thread stacks.
endif