1# Copyright (c) 2016 Intel Corporation
2# SPDX-License-Identifier: Apache-2.0
3
4if NEWLIB_LIBC
5
6config NEWLIB_LIBC_NANO
7	bool "Build with newlib-nano C library"
8	depends on HAS_NEWLIB_LIBC_NANO
9	help
10	  Build with newlib-nano library, for small embedded apps.
11	  The newlib-nano library for ARM embedded processors is a part of the
12	  GNU Tools for ARM Embedded Processors.
13
14config NEWLIB_LIBC_MAX_MAPPED_REGION_SIZE
15	int "Maximum memory mapped for newlib heap"
16	depends on MMU
17	default 1048576
18	help
19	  On MMU-based systems, indicates the maximum amount of memory which
20	  will be used for the newlib malloc() heap. The actual amount of
21	  memory used will be the minimum of this value and the amount of
22	  free physical memory at kernel boot.
23
24config NEWLIB_LIBC_MIN_REQUIRED_HEAP_SIZE
25	int "Newlib minimum required heap size"
26	default 2048 if NEWLIB_LIBC_NANO
27	default 8192 if !NEWLIB_LIBC_NANO
28	help
29	  Specifies the amount of memory space that must be available for the
30	  newlib heap. An assertion failure message will be displayed during
31	  initialization if the memory space available for the newlib heap is
32	  smaller than this value.
33
34config NEWLIB_LIBC_ALIGNED_HEAP_SIZE
35	int "Newlib aligned heap size"
36	depends on MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT
37	depends on USERSPACE
38	default 0
39	help
40	  If user mode is enabled, and MPU hardware has requirements that
41	  regions be sized to a power of two and aligned to their size,
42	  and user mode threads need to access this heap, then this is necessary
43	  to properly define an MPU region for the heap.
44
45	  If this is left at 0, then remaining system RAM will be used for this
46	  area and it may not be possible to program it as an MPU region.
47
48config NEWLIB_LIBC_FLOAT_PRINTF
49	bool "Build with newlib float printf"
50	help
51	  Build with floating point printf enabled. This will increase the size of
52	  the image.
53
54config NEWLIB_LIBC_FLOAT_SCANF
55	bool "Build with newlib float scanf"
56	help
57	  Build with floating point scanf enabled. This will increase the size of
58	  the image.
59
60config NEWLIB_LIBC_HEAP_LISTENER
61	bool "Notify heap listeners of newlib libc heap events"
62	select HEAP_LISTENER
63	help
64	  Notify registered heap listeners upon certain events related to the newlib
65	  libc heap usage, such as the heap resize.
66
67endif # NEWLIB_LIBC
68