1# Copyright (c) 2016 Intel Corporation
2# SPDX-License-Identifier: Apache-2.0
3
4menu "OS Support Library"
5
6config FDTABLE
7	bool "File descriptor table"
8	help
9	  This file provides generic file descriptor table implementation, suitable
10	  for any I/O object implementing POSIX I/O semantics (i.e. read/write +
11	  aux operations).
12
13config PRINTK_SYNC
14	bool "Serialize printk() calls"
15	default y if SMP && MP_MAX_NUM_CPUS > 1 && !(EFI_CONSOLE && LOG)
16	help
17	  When true, a spinlock will be taken around the output from a
18	  single printk() call, preventing the output data from
19	  interleaving with concurrent usage from another CPU or an
20	  preempting interrupt.
21
22config MPSC_PBUF
23	bool "Multi producer, single consumer packet buffer"
24	select TIMEOUT_64BIT
25	help
26	  Enable usage of mpsc packet buffer. Packet buffer is capable of
27	  storing variable length packets in a circular way and operate directly
28	  on the buffer memory.
29
30config SPSC_PBUF
31	bool "Single producer, single consumer packet buffer"
32	help
33	  Enable usage of spsc packet buffer. Packet buffer is capable of
34	  storing variable length packets in a circular way and operate directly
35	  on the buffer memory.
36
37if SPSC_PBUF
38
39choice SPSC_PBUF_CACHE_HANDLING
40	prompt "Cache handling"
41	default SPSC_PBUF_CACHE_ALWAYS if SPSC_PBUF_USE_CACHE && !SPSC_PBUF_NO_CACHE
42	default SPSC_PBUF_CACHE_NEVER if !SPSC_PBUF_USE_CACHE && SPSC_PBUF_NO_CACHE
43	default SPSC_PBUF_CACHE_FLAG
44
45config SPSC_PBUF_CACHE_FLAG
46	bool "Use cache flag"
47	help
48	  Use instance specific configuration flag for cache handling.
49
50config SPSC_PBUF_CACHE_ALWAYS
51	bool "Always handle cache"
52	help
53	  Handle cache writeback and invalidation for all instances. Option used
54	  to avoid runtime check and thus reduce memory footprint.
55
56config SPSC_PBUF_CACHE_NEVER
57	bool "Never handle cache"
58	help
59	  Discar cache handling for all instances. Option used to avoid runtime
60	  check and thus reduce memory footprint.
61
62endchoice
63
64config SPSC_PBUF_USE_CACHE
65	bool
66
67config SPSC_PBUF_NO_CACHE
68	bool
69
70if SPSC_PBUF_CACHE_FLAG || SPSC_PBUF_CACHE_ALWAYS
71
72config SPSC_PBUF_REMOTE_DCACHE_LINE
73	int "Remote cache line size"
74	default 32
75	help
76	  If a packet buffer is used for data sharing between two cores then
77	  this value should be set to the data cache line size of the remote core.
78	  If local data cache line is detected at runtime then it should be
79	  maximum of local and remote line size.
80
81endif # SPSC_PBUF_CACHE_FLAG || SPSC_PBUF_CACHE_ALWAYS
82
83config SPSC_PBUF_UTILIZATION
84	bool "Track maximum utilization"
85	help
86	  When enabled, maximum utilization is tracked which can be used to
87	  determine the size of the packet buffer.
88
89endif # SPSC_PBUF
90
91if MPSC_PBUF
92config MPSC_CLEAR_ALLOCATED
93	bool "Clear allocated packet"
94	help
95	  When enabled packet space is zeroed before returning from allocation.
96endif
97
98config REBOOT
99	bool "Reboot functionality"
100	help
101	  Enable the sys_reboot() API. Enabling this can drag in other subsystems
102	  needed to perform a "safe" reboot (e.g. to stop the system clock before
103	  issuing a reset).
104
105config HAS_POWEROFF
106	bool
107	help
108	  Option to signal that power off functionality is implemented.
109
110config POWEROFF
111	bool "Power off functionality"
112	depends on HAS_POWEROFF
113	help
114	  Enable support for system power off.
115
116rsource "Kconfig.cbprintf"
117
118endmenu
119