1# Copyright (c) 2024 Intel Corp.
2# SPDX-License-Identifier: Apache-2.0
3#
4menuconfig OBJ_CORE
5	bool "Object core framework"
6	default n
7	help
8	  This option enables the object core framework. This will link
9	  participating kernel objects and their respective types together
10	  in a way that allows them to both have common information stored
11	  together and for that information to be easily retrieved by
12	  automated means.
13
14if OBJ_CORE
15config OBJ_CORE_CONDVAR
16	bool "Integrate condition variables into object core framework"
17	default y
18	help
19	  When enabled, this option integrates condition variables into the
20	  object core framework.
21
22config OBJ_CORE_EVENT
23	bool "Integrate events into object core framework"
24	default y if EVENTS
25	help
26	  When enabled, this option integrate kernel events into the object
27	  core framework.
28
29config OBJ_CORE_FIFO
30	bool "Integrate FIFOs into object core framework"
31	default y
32	help
33	  When enabled, this option integrates FIFOs into the object core
34	  framework.
35
36config OBJ_CORE_LIFO
37	bool "Integrate LIFOs into object core framework"
38	default y
39	help
40	  When enabled, this option integrates LIFOs into the object core
41	  framework.
42
43config OBJ_CORE_MAILBOX
44	bool "Integrate mailboxes into object core framework"
45	default y
46	help
47	  When enabled, this option integrates mailboxes into the object core
48	  framework.
49
50config OBJ_CORE_MEM_SLAB
51	bool "Integrate memory slabs into object core framework"
52	default y
53	help
54	  When enabled, this option integrates memory slabs into the object
55	  core framework.
56
57config OBJ_CORE_MUTEX
58	bool "Integrate mutexes into object core framework"
59	default y
60	help
61	  When enabled, this option integrates mutexes into the object core
62	  framework.
63
64config OBJ_CORE_MSGQ
65	bool "Integrate message queues into object core framework"
66	default y
67	help
68	  When enabled, this option integrates message queues into the object
69	  core framework.
70
71config OBJ_CORE_SEM
72	bool "Integrate semaphores into object core framework"
73	default y
74	help
75	  When enabled, this option integrates semaphores into the object core
76	  framework.
77
78config OBJ_CORE_PIPE
79	bool "Integrate pipe into object core framework"
80	default y if PIPES
81	help
82	  When enabled, this option integrates pipes into the object core
83	  framework.
84
85config OBJ_CORE_SEM
86	bool "Integrate semaphores into object core framework"
87	default y
88	help
89	  When enabled, this option integrates semaphores into the object core
90	  framework.
91
92config OBJ_CORE_STACK
93	bool "Integrate stacks into object core framework"
94	default y
95	help
96	  When enabled, this option integrates stacks into the object core
97	  framework.
98
99config OBJ_CORE_THREAD
100	bool "Integrate threads into object core framework"
101	default y
102	help
103	  When enabled, this option integrates threads into the object core
104	  framework.
105
106config OBJ_CORE_TIMER
107	bool "Integrate timers into object core framework"
108	default y
109	help
110	  When enabled, this option integrates timers into the object core
111	  framework.
112
113config OBJ_CORE_SYSTEM
114	bool
115	default y
116	help
117	  When enabled, this option integrates the internal CPU and kernel
118	  system objects into the object core framework. As these are internal
119	  structures, this option is hidden by default and only available to
120	  advanced users.
121
122menuconfig OBJ_CORE_STATS
123	bool "Object core statistics"
124	default n
125	help
126	  This option integrates statistics gathering into the object core
127	  framework.
128
129if OBJ_CORE_STATS
130config OBJ_CORE_STATS_MEM_SLAB
131	bool "Object core statistics for memory slabs"
132	default y if OBJ_CORE_MEM_SLAB
133	help
134	  When enabled, this allows memory slab statistics to be integrated
135	  into kernel objects.
136
137config OBJ_CORE_STATS_THREAD
138	bool "Object core statistics for threads"
139	default y if OBJ_CORE_THREAD
140	select THREAD_RUNTIME_STATS
141	help
142	  When enabled, this integrates thread runtime statistics into the
143	  object core statistics framework.
144
145config OBJ_CORE_STATS_SYSTEM
146	bool "Object core statistics for system level objects"
147	default y if OBJ_CORE_SYSTEM
148	select SCHED_THREAD_USAGE_ALL
149	help
150	  When enabled, this integrates thread runtime statistics at the
151	  CPU and system level into the object core statistics framework.
152
153endif  # OBJ_CORE_STATS
154
155endif  # OBJ_CORE
156