blob: 6db2a25d90d96eeec36910da3632d3c53637d6d0 [file] [log] [blame]
# General configuration options
# Copyright (c) 2017 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
menu "POSIX (native) Options"
depends on ARCH_POSIX
config ARCH
default "posix"
config ARCH_POSIX_RECOMMENDED_STACK_SIZE
int
default 44 if 64BIT && STACK_SENTINEL
default 40 if 64BIT
default 28 if STACK_SENTINEL
default 24
help
In bytes, stack size for Zephyr threads meant only for the POSIX
architecture.
(In this architecture only part of the thread status is kept in the Zephyr
thread stack, the real stack is the native underlying pthread stack.
Therefore the allocated stack can be limited to this size)
config ARCH_POSIX_LIBFUZZER
bool "Build fuzz test target"
help
Build the posix app as a LLVM libfuzzer target. Requires
support from the toolchain (currently only clang works, and
only on native_posix_64), and should normally be used in
concert with some of CONFIG_ASAN/UBSAN/MSAN for validation.
The application needs to implement the
LLVMFuzzerTestOneInput() entry point, which runs in the host
environment "outside" the OS. See Zephyr documentation and
sample and https://llvm.org/docs/LibFuzzer.html for more
information.
config ARCH_POSIX_FUZZ_IRQ
int "OS interrupt via which to deliver fuzz cases"
default 3
help
When using libfuzzer, new fuzz cases are delivered to Zephyr
via interrupts. The IRQ should be otherwise unused, but can
be any value desired by the app.
config ARCH_POSIX_FUZZ_TICKS
int "Ticks to allow for fuzz case processing"
default 2
help
Fuzz interrupts are delivered, from the perspective of the
OS, at a steady cadence in simulated time. In general most
apps won't require much time to reach an idle state
following a unit-test style case, so the default is short to
prevent interaction with regular timer workloads.
endmenu