diff --git a/posix/include/rtos/userspace_data.h b/posix/include/rtos/userspace_data.h new file mode 100644 index 000000000000..f8733f3cf675 --- /dev/null +++ b/posix/include/rtos/userspace_data.h @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2026 Intel Corporation. + */ + +/** + * \file posix/include/rtos/userspace_data.h + * \brief Placement of data that user-space threads must be able to access. + * + * Only the memory partition placement attributes, so that user-space code + * can use them without the kernel memory domain helpers in + * rtos/userspace_helper.h. + */ +#ifndef __POSIX_RTOS_USERSPACE_DATA_H__ +#define __POSIX_RTOS_USERSPACE_DATA_H__ + +#define APP_TASK_BSS +#define APP_TASK_DATA +#define APP_SYSUSER_BSS +#define APP_SYSUSER_DATA + +#endif /* __POSIX_RTOS_USERSPACE_DATA_H__ */ diff --git a/posix/include/rtos/userspace_helper.h b/posix/include/rtos/userspace_helper.h index bb5d7670e9a1..d1b3c2377393 100644 --- a/posix/include/rtos/userspace_helper.h +++ b/posix/include/rtos/userspace_helper.h @@ -17,10 +17,7 @@ #include -#define APP_TASK_BSS -#define APP_TASK_DATA -#define APP_SYSUSER_BSS -#define APP_SYSUSER_DATA +#include struct sys_heap; diff --git a/scripts/kernel_user_partition.txt b/scripts/kernel_user_partition.txt index 657492223121..cf913dd07713 100644 --- a/scripts/kernel_user_partition.txt +++ b/scripts/kernel_user_partition.txt @@ -37,6 +37,8 @@ src/audio/mic_privacy_manager/* src/audio/module_adapter/library/userspace_proxy.c # SOF headers that only kernel code may include. +# Not listed on purpose: rtos/init.h, which only provides the +# SOF_MODULE_INIT() registration hook used by every module. [kernel-headers] src/include/sof/drivers/* src/include/sof/platform.h @@ -51,7 +53,6 @@ src/include/sof/lib/watchdog.h src/platform/* zephyr/include/rtos/clk.h zephyr/include/rtos/idc.h -zephyr/include/rtos/init.h zephyr/include/rtos/interrupt.h zephyr/include/rtos/interrupt-legacy.h zephyr/include/rtos/timer.h diff --git a/src/audio/asrc/asrc.c b/src/audio/asrc/asrc.c index 0f3394a0ace5..b5ebc21b8f4d 100644 --- a/src/audio/asrc/asrc.c +++ b/src/audio/asrc/asrc.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include diff --git a/src/audio/asrc/asrc_farrow.c b/src/audio/asrc/asrc_farrow.c index dcd58fad22bf..00883bb279ba 100644 --- a/src/audio/asrc/asrc_farrow.c +++ b/src/audio/asrc/asrc_farrow.c @@ -7,7 +7,6 @@ #include #include #include -#include #include #include #include diff --git a/src/audio/base_fw.c b/src/audio/base_fw.c index 1f6436d3f79e..17c75c57feba 100644 --- a/src/audio/base_fw.c +++ b/src/audio/base_fw.c @@ -18,16 +18,20 @@ #include #include #include +#include #include #include #include #include +#include #include #include #include #include #include #include +#include +#include /* FIXME: * Builds for some platforms like tgl fail because their defines related to memory windows are * already defined somewhere else. Remove this ifdef after it's cleaned up diff --git a/src/audio/base_fw_intel.c b/src/audio/base_fw_intel.c index bcb9fca8e1f2..0d302e7c3fab 100644 --- a/src/audio/base_fw_intel.c +++ b/src/audio/base_fw_intel.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include diff --git a/src/audio/buffers/comp_buffer.c b/src/audio/buffers/comp_buffer.c index f86328e244b3..09f5610559e8 100644 --- a/src/audio/buffers/comp_buffer.c +++ b/src/audio/buffers/comp_buffer.c @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include diff --git a/src/audio/component.c b/src/audio/component.c index 81873c96f78d..9a1623099fef 100644 --- a/src/audio/component.c +++ b/src/audio/component.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/src/audio/copier/copier.c b/src/audio/copier/copier.c index 4ec85cb64fba..d4415e1fdc97 100644 --- a/src/audio/copier/copier.c +++ b/src/audio/copier/copier.c @@ -39,6 +39,7 @@ #include #include #include +#include #include "copier.h" #include "host_copier.h" #include "dai_copier.h" diff --git a/src/audio/copier/copier_host.c b/src/audio/copier/copier_host.c index 3e704b2b1163..1d8960dee199 100644 --- a/src/audio/copier/copier_host.c +++ b/src/audio/copier/copier_host.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include "copier.h" #include "host_copier.h" diff --git a/src/audio/copier/copier_ipcgtw.c b/src/audio/copier/copier_ipcgtw.c index 29c7780f6423..7b53e9aba0d6 100644 --- a/src/audio/copier/copier_ipcgtw.c +++ b/src/audio/copier/copier_ipcgtw.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include "copier.h" #include "ipcgtw_copier.h" diff --git a/src/audio/dai-zephyr.c b/src/audio/dai-zephyr.c index 785740e36ab2..d9b753f28227 100644 --- a/src/audio/dai-zephyr.c +++ b/src/audio/dai-zephyr.c @@ -6,6 +6,7 @@ // Keyon Jie #include +#include #include #include #include diff --git a/src/audio/data_blob.c b/src/audio/data_blob.c index a0f0cb0aa9bb..e56ca190be6c 100644 --- a/src/audio/data_blob.c +++ b/src/audio/data_blob.c @@ -12,6 +12,7 @@ #include #include #include +#include LOG_MODULE_REGISTER(data_blob, CONFIG_SOF_LOG_LEVEL); diff --git a/src/audio/host-zephyr.c b/src/audio/host-zephyr.c index 48936617c9fa..45e2b874aa46 100644 --- a/src/audio/host-zephyr.c +++ b/src/audio/host-zephyr.c @@ -6,6 +6,7 @@ // Keyon Jie #include +#include #include #include #include diff --git a/src/audio/module_adapter/library/userspace_proxy.c b/src/audio/module_adapter/library/userspace_proxy.c index 9cda1e9e709e..a861c9670cc5 100644 --- a/src/audio/module_adapter/library/userspace_proxy.c +++ b/src/audio/module_adapter/library/userspace_proxy.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include diff --git a/src/audio/module_adapter/module/dolby/dax.h b/src/audio/module_adapter/module/dolby/dax.h index eb50db9cd94e..56c71ce7b9e1 100644 --- a/src/audio/module_adapter/module/dolby/dax.h +++ b/src/audio/module_adapter/module/dolby/dax.h @@ -7,6 +7,7 @@ * Author: Jun Lai */ +#include #include #include #include diff --git a/src/audio/module_adapter/module/generic.c b/src/audio/module_adapter/module/generic.c index 885291a74200..137767480e1d 100644 --- a/src/audio/module_adapter/module/generic.c +++ b/src/audio/module_adapter/module/generic.c @@ -20,6 +20,7 @@ #include #include #include +#include #if CONFIG_IPC_MAJOR_4 #include #include diff --git a/src/audio/module_adapter/module_adapter.c b/src/audio/module_adapter/module_adapter.c index 5bbfe1632af5..3ccae18cbe09 100644 --- a/src/audio/module_adapter/module_adapter.c +++ b/src/audio/module_adapter/module_adapter.c @@ -24,12 +24,12 @@ #include #include #include +#include #if CONFIG_IPC_MAJOR_4 #include #include #include #endif -#include #include #include #include diff --git a/src/audio/pipeline/pipeline-graph.c b/src/audio/pipeline/pipeline-graph.c index b4e5d5cb4ff5..84dbc528f524 100644 --- a/src/audio/pipeline/pipeline-graph.c +++ b/src/audio/pipeline/pipeline-graph.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/src/audio/pipeline/pipeline-params.c b/src/audio/pipeline/pipeline-params.c index ed32fc9e3b02..afa7b7ec739e 100644 --- a/src/audio/pipeline/pipeline-params.c +++ b/src/audio/pipeline/pipeline-params.c @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include diff --git a/src/audio/pipeline/pipeline-xrun.c b/src/audio/pipeline/pipeline-xrun.c index c535ddbb84a1..af6d9a4062c1 100644 --- a/src/audio/pipeline/pipeline-xrun.c +++ b/src/audio/pipeline/pipeline-xrun.c @@ -10,8 +10,10 @@ #include #include #include +#include #include #include +#include #include #include #include diff --git a/src/audio/volume/volume.h b/src/audio/volume/volume.h index 7d25e1fc4c97..b73870d74f1e 100644 --- a/src/audio/volume/volume.h +++ b/src/audio/volume/volume.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include diff --git a/src/drivers/amd/rembrandt/acp_hs_dai.c b/src/drivers/amd/rembrandt/acp_hs_dai.c index 0901d4d8b696..2dc1d8ef72c4 100644 --- a/src/drivers/amd/rembrandt/acp_hs_dai.c +++ b/src/drivers/amd/rembrandt/acp_hs_dai.c @@ -18,6 +18,7 @@ #include #include #include +#include SOF_DEFINE_REG_UUID(hsdai); /* unused with Zephyr, generates no output */ diff --git a/src/include/sof/audio/audio_stream.h b/src/include/sof/audio/audio_stream.h index 45adb1e4a38a..4f2d3a03c97c 100644 --- a/src/include/sof/audio/audio_stream.h +++ b/src/include/sof/audio/audio_stream.h @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include @@ -695,35 +694,6 @@ static inline void audio_stream_consume(struct audio_stream *buffer, uint32_t by buffer->free = buffer->size - buffer->avail; } -#ifdef __ZEPHYR__ -/** - * Replicates the hardware state of the DMA buffer as a struct audio_stream. - * @param stream Stream to update. - * @param dma_status DMA buffer hardware state (struct dma_status from Zephyr). - */ -static inline void audio_stream_sync_to_hw(struct audio_stream *stream, - const struct dma_status *dma_status) -{ - uintptr_t buf_start = (uintptr_t)audio_stream_get_addr(stream); - - /* Note: It is assumed here that dma_status values are reported as bytes. However, - * this is actually platform-specific. Although unlikely, they could be, for example, - * words on some particular platform, and changes should be made here to address - * such case. - */ - - assert(dma_status->write_position < audio_stream_get_size(stream)); - assert(dma_status->read_position < audio_stream_get_size(stream)); - assert(dma_status->pending_length <= audio_stream_get_size(stream)); - assert(dma_status->free <= audio_stream_get_size(stream)); - - audio_stream_set_wptr(stream, (void *)(buf_start + dma_status->write_position)); - audio_stream_set_rptr(stream, (void *)(buf_start + dma_status->read_position)); - audio_stream_set_avail(stream, dma_status->pending_length); - audio_stream_set_free(stream, dma_status->free); -} -#endif /* __ZEPHYR__ */ - /** * Resets the buffer. * @param buffer Buffer to reset. diff --git a/src/include/sof/audio/audio_stream_hw.h b/src/include/sof/audio/audio_stream_hw.h new file mode 100644 index 000000000000..82ae90280be7 --- /dev/null +++ b/src/include/sof/audio/audio_stream_hw.h @@ -0,0 +1,54 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2020 - 2023 Intel Corporation. All rights reserved. + */ + +/** + * \file include/sof/audio/audio_stream_hw.h + * \brief Synchronisation of an audio stream with the state of its DMA buffer + * + * Kept separate from sof/audio/audio_stream.h because it needs the Zephyr + * DMA driver definitions, which most users of the audio stream API do not. + * Only available in Zephyr builds. + */ + +#ifndef __SOF_AUDIO_AUDIO_STREAM_HW_H__ +#define __SOF_AUDIO_AUDIO_STREAM_HW_H__ + +#include +#include + +#ifdef __ZEPHYR__ + +#include + +/** + * Replicates the hardware state of the DMA buffer as a struct audio_stream. + * @param stream Stream to update. + * @param dma_status DMA buffer hardware state (struct dma_status from Zephyr). + */ +static inline void audio_stream_sync_to_hw(struct audio_stream *stream, + const struct dma_status *dma_status) +{ + uintptr_t buf_start = (uintptr_t)audio_stream_get_addr(stream); + + /* Note: It is assumed here that dma_status values are reported as bytes. However, + * this is actually platform-specific. Although unlikely, they could be, for example, + * words on some particular platform, and changes should be made here to address + * such case. + */ + + assert(dma_status->write_position < audio_stream_get_size(stream)); + assert(dma_status->read_position < audio_stream_get_size(stream)); + assert(dma_status->pending_length <= audio_stream_get_size(stream)); + assert(dma_status->free <= audio_stream_get_size(stream)); + + audio_stream_set_wptr(stream, (void *)(buf_start + dma_status->write_position)); + audio_stream_set_rptr(stream, (void *)(buf_start + dma_status->read_position)); + audio_stream_set_avail(stream, dma_status->pending_length); + audio_stream_set_free(stream, dma_status->free); +} + +#endif /* __ZEPHYR__ */ + +#endif /* __SOF_AUDIO_AUDIO_STREAM_HW_H__ */ diff --git a/src/include/sof/audio/component.h b/src/include/sof/audio/component.h index f414811cc3c9..3b0c59a2635c 100644 --- a/src/include/sof/audio/component.h +++ b/src/include/sof/audio/component.h @@ -20,12 +20,9 @@ #include #include #include -#include #include -#include -#include +#include #include -#include #include #include #include @@ -37,6 +34,8 @@ struct sof_ipc_stream_posn; struct dai_hw_params; struct timestamp_data; struct dai_ts_data; +struct dai_data; +struct task; /** \addtogroup component_infra_api * @{ diff --git a/src/include/sof/audio/component_ext.h b/src/include/sof/audio/component_ext.h index 74562203864e..691173f1c27a 100644 --- a/src/include/sof/audio/component_ext.h +++ b/src/include/sof/audio/component_ext.h @@ -18,6 +18,10 @@ #include #include +/* TODO: the cross-core helpers below send IDC messages, which is kernel only */ +#include +#include +#include /** \addtogroup component_infra_api * @{ diff --git a/src/include/sof/audio/pipeline.h b/src/include/sof/audio/pipeline.h index a621aee488ab..9409eaec0236 100644 --- a/src/include/sof/audio/pipeline.h +++ b/src/include/sof/audio/pipeline.h @@ -15,7 +15,6 @@ #define __SOF_AUDIO_PIPELINE_H__ #include -#include #include #include #include diff --git a/src/include/sof/ipc/topology.h b/src/include/sof/ipc/topology.h index e04ac5364d4b..d072abc16a24 100644 --- a/src/include/sof/ipc/topology.h +++ b/src/include/sof/ipc/topology.h @@ -13,9 +13,7 @@ #include #include #include -#include #include -#include #include #include #include diff --git a/src/include/sof/lib/perf_cnt.h b/src/include/sof/lib/perf_cnt.h index bcb2a0769630..753fcef36b51 100644 --- a/src/include/sof/lib/perf_cnt.h +++ b/src/include/sof/lib/perf_cnt.h @@ -15,27 +15,7 @@ #define __SOF_LIB_PERF_CNT_H__ #include - -struct perf_cnt_data { - /* current platform clock */ - uint32_t plat_ts; - /* current cpu clock */ - uint32_t cpu_ts; - /* one period module cycles */ - uint32_t plat_delta_last; - /* period module peak cycles within period_cnt */ - uint32_t plat_delta_peak; - /* one period module cycles from cpu clock */ - uint32_t cpu_delta_last; - /* period module peak cycles within period_cnt from cpu clock */ - uint32_t cpu_delta_peak; - /* total cycles within period_cnt */ - uint32_t cpu_delta_sum; - /* accumulate period passed and calculate avg cycles */ - uint32_t period_cnt; - /* indicate which period have peak mcps in current module */ - uint32_t peak_mcps_period_cnt; -}; +#include #if CONFIG_PERFORMANCE_COUNTERS diff --git a/src/include/sof/lib/perf_cnt_data.h b/src/include/sof/lib/perf_cnt_data.h new file mode 100644 index 000000000000..82c4aec86658 --- /dev/null +++ b/src/include/sof/lib/perf_cnt_data.h @@ -0,0 +1,42 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2019 Intel Corporation. All rights reserved. + * + * Author: Marcin Maka + */ + +/** + * \file include/sof/lib/perf_cnt_data.h + * \brief Performance counter data, without the timer based helpers + * + * Kept separate from sof/lib/perf_cnt.h so that structures embedding the + * counters (tasks, components) do not depend on the timer headers. + */ + +#ifndef __SOF_LIB_PERF_CNT_DATA_H__ +#define __SOF_LIB_PERF_CNT_DATA_H__ + +#include + +struct perf_cnt_data { + /* current platform clock */ + uint32_t plat_ts; + /* current cpu clock */ + uint32_t cpu_ts; + /* one period module cycles */ + uint32_t plat_delta_last; + /* period module peak cycles within period_cnt */ + uint32_t plat_delta_peak; + /* one period module cycles from cpu clock */ + uint32_t cpu_delta_last; + /* period module peak cycles within period_cnt from cpu clock */ + uint32_t cpu_delta_peak; + /* total cycles within period_cnt */ + uint32_t cpu_delta_sum; + /* accumulate period passed and calculate avg cycles */ + uint32_t period_cnt; + /* indicate which period have peak mcps in current module */ + uint32_t peak_mcps_period_cnt; +}; + +#endif /* __SOF_LIB_PERF_CNT_DATA_H__ */ diff --git a/src/include/sof/trace/trace.h b/src/include/sof/trace/trace.h index bd6a56d87da0..0639ac4adbd9 100644 --- a/src/include/sof/trace/trace.h +++ b/src/include/sof/trace/trace.h @@ -26,9 +26,6 @@ #endif #include -#if !CONFIG_LIBRARY -#include -#endif #include #if CONFIG_ZEPHYR_LOG || CONFIG_LIBRARY || CONFIG_ARCH_POSIX_LIBFUZZER diff --git a/src/ipc/ipc-helper.c b/src/ipc/ipc-helper.c index c8b7f0213f1b..a8a36a94e774 100644 --- a/src/ipc/ipc-helper.c +++ b/src/ipc/ipc-helper.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include diff --git a/src/ipc/ipc3/dai.c b/src/ipc/ipc3/dai.c index a118d5e341d3..fcb6a7062939 100644 --- a/src/ipc/ipc3/dai.c +++ b/src/ipc/ipc3/dai.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/src/ipc/ipc4/dai.c b/src/ipc/ipc4/dai.c index 997916aa7854..27c8ee8b6f56 100644 --- a/src/ipc/ipc4/dai.c +++ b/src/ipc/ipc4/dai.c @@ -13,10 +13,12 @@ #include #include #include +#include #include #include #include #include +#include #include #include #include diff --git a/src/library_manager/lib_manager.c b/src/library_manager/lib_manager.c index 1e0a3c111587..8841fe4d58c8 100644 --- a/src/library_manager/lib_manager.c +++ b/src/library_manager/lib_manager.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/src/platform/imx8/platform.c b/src/platform/imx8/platform.c index 50d6bb4f4ac6..b07039832c2b 100644 --- a/src/platform/imx8/platform.c +++ b/src/platform/imx8/platform.c @@ -7,6 +7,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/src/platform/imx8m_cm7/platform.c b/src/platform/imx8m_cm7/platform.c index 2da512f3063d..da1da0c90a8b 100644 --- a/src/platform/imx8m_cm7/platform.c +++ b/src/platform/imx8m_cm7/platform.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/src/platform/imx93_a55/platform.c b/src/platform/imx93_a55/platform.c index ed5a7f6956fc..7bc7df3578c6 100644 --- a/src/platform/imx93_a55/platform.c +++ b/src/platform/imx93_a55/platform.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/src/platform/imx95/platform.c b/src/platform/imx95/platform.c index f46500907c91..b7d4bed96b24 100644 --- a/src/platform/imx95/platform.c +++ b/src/platform/imx95/platform.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/src/platform/intel/ace/platform.c b/src/platform/intel/ace/platform.c index f19003117e08..806a58a27bd8 100644 --- a/src/platform/intel/ace/platform.c +++ b/src/platform/intel/ace/platform.c @@ -8,6 +8,7 @@ // Janusz Jankowski #include +#include #include #include #include @@ -27,6 +28,7 @@ #include #include #include +#include #if CONFIG_INTEL_ADSP_MIC_PRIVACY #include "sof/audio/mic_privacy_manager.h" #endif diff --git a/src/platform/library/schedule/edf_schedule.c b/src/platform/library/schedule/edf_schedule.c index 67c3a669c2f8..1fbfb4a63ada 100644 --- a/src/platform/library/schedule/edf_schedule.c +++ b/src/platform/library/schedule/edf_schedule.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include diff --git a/src/platform/library/schedule/schedule.c b/src/platform/library/schedule/schedule.c index ea4cc33608ac..4ceafd495eb6 100644 --- a/src/platform/library/schedule/schedule.c +++ b/src/platform/library/schedule/schedule.c @@ -8,6 +8,7 @@ // Ranjani Sridharan #include +#include #include #include #include diff --git a/src/platform/mtk/platform.c b/src/platform/mtk/platform.c index 22497cf19641..1cb835717f05 100644 --- a/src/platform/mtk/platform.c +++ b/src/platform/mtk/platform.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/src/probe/probe.c b/src/probe/probe.c index d3746ca05078..22dafba75ac7 100644 --- a/src/probe/probe.c +++ b/src/probe/probe.c @@ -21,9 +21,9 @@ #include #include #include +#include #if CONFIG_IPC_MAJOR_4 #include -#include #include #include #include diff --git a/src/schedule/schedule.c b/src/schedule/schedule.c index 31f79334b0e4..89691a32d981 100644 --- a/src/schedule/schedule.c +++ b/src/schedule/schedule.c @@ -7,6 +7,7 @@ /* Generic scheduler */ #include +#include #include #include #include diff --git a/src/schedule/zephyr_dp_schedule.c b/src/schedule/zephyr_dp_schedule.c index 89a830eb14a6..314f8df5bba0 100644 --- a/src/schedule/zephyr_dp_schedule.c +++ b/src/schedule/zephyr_dp_schedule.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include "zephyr_dp_schedule.h" diff --git a/src/schedule/zephyr_dp_schedule_application.c b/src/schedule/zephyr_dp_schedule_application.c index 1ce105392c2f..80fe50be31de 100644 --- a/src/schedule/zephyr_dp_schedule_application.c +++ b/src/schedule/zephyr_dp_schedule_application.c @@ -6,6 +6,7 @@ */ #include +#include #include #include @@ -15,6 +16,7 @@ #include #include #include +#include #include #include diff --git a/src/schedule/zephyr_dp_schedule_thread.c b/src/schedule/zephyr_dp_schedule_thread.c index 43c4b43e35e2..fa8583832a03 100644 --- a/src/schedule/zephyr_dp_schedule_thread.c +++ b/src/schedule/zephyr_dp_schedule_thread.c @@ -7,6 +7,7 @@ */ #include +#include #include #include @@ -16,6 +17,7 @@ #include #include #include +#include #include diff --git a/tools/testbench/file.c b/tools/testbench/file.c index 6e48cc184c38..07159d8c296b 100644 --- a/tools/testbench/file.c +++ b/tools/testbench/file.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/tools/testbench/utils.c b/tools/testbench/utils.c index 91c08c62aab1..5d37caf4099c 100644 --- a/tools/testbench/utils.c +++ b/tools/testbench/utils.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include diff --git a/zephyr/edf_schedule.c b/zephyr/edf_schedule.c index f00ad28b217a..3578b3dd6c7d 100644 --- a/zephyr/edf_schedule.c +++ b/zephyr/edf_schedule.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include diff --git a/zephyr/include/rtos/task.h b/zephyr/include/rtos/task.h index 199f3e552156..563b4b999145 100644 --- a/zephyr/include/rtos/task.h +++ b/zephyr/include/rtos/task.h @@ -19,7 +19,7 @@ #include #include #include -#include +#include /** \addtogroup scheduling_api * @{ diff --git a/zephyr/include/rtos/userspace_data.h b/zephyr/include/rtos/userspace_data.h new file mode 100644 index 000000000000..45019e027cee --- /dev/null +++ b/zephyr/include/rtos/userspace_data.h @@ -0,0 +1,41 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2026 Intel Corporation. + */ + +/** + * \file zephyr/include/rtos/userspace_data.h + * \brief Placement of data that user-space threads must be able to access. + * + * Only the memory partition placement attributes, so that user-space code + * can use them without the kernel memory domain helpers in + * rtos/userspace_helper.h. + */ +#ifndef __ZEPHYR_RTOS_USERSPACE_DATA_H__ +#define __ZEPHYR_RTOS_USERSPACE_DATA_H__ + +#ifndef CONFIG_USERSPACE + +#define APP_TASK_BSS +#define APP_TASK_DATA +#define APP_SYSUSER_BSS +#define APP_SYSUSER_DATA + +#else + +#include + +#define APP_TASK_BSS K_APP_BMEM(common_partition) +#define APP_TASK_DATA K_APP_DMEM(common_partition) + +#ifdef CONFIG_SOF_USERSPACE_LL +#define APP_SYSUSER_BSS K_APP_BMEM(sysuser_partition) +#define APP_SYSUSER_DATA K_APP_DMEM(sysuser_partition) +#else +#define APP_SYSUSER_BSS +#define APP_SYSUSER_DATA +#endif + +#endif /* CONFIG_USERSPACE */ + +#endif /* __ZEPHYR_RTOS_USERSPACE_DATA_H__ */ diff --git a/zephyr/include/rtos/userspace_helper.h b/zephyr/include/rtos/userspace_helper.h index b3b122accf9a..44d03b827bd3 100644 --- a/zephyr/include/rtos/userspace_helper.h +++ b/zephyr/include/rtos/userspace_helper.h @@ -14,27 +14,14 @@ #include -#ifndef CONFIG_USERSPACE -#define APP_TASK_BSS -#define APP_TASK_DATA -#define APP_SYSUSER_BSS -#define APP_SYSUSER_DATA -#else +#include + +#ifdef CONFIG_USERSPACE #include #include #define USER_MOD_HEAP_SIZE ALIGN_UP(CONFIG_SOF_ZEPHYR_USERSPACE_MODULE_HEAP_SIZE, \ CONFIG_MM_DRV_PAGE_SIZE) -#define APP_TASK_BSS K_APP_BMEM(common_partition) -#define APP_TASK_DATA K_APP_DMEM(common_partition) - -#ifdef CONFIG_SOF_USERSPACE_LL -#define APP_SYSUSER_BSS K_APP_BMEM(sysuser_partition) -#define APP_SYSUSER_DATA K_APP_DMEM(sysuser_partition) -#else -#define APP_SYSUSER_BSS -#define APP_SYSUSER_DATA -#endif struct processing_module; struct userspace_context; diff --git a/zephyr/lib/cpu.c b/zephyr/lib/cpu.c index c2f654509a34..ea407a45a554 100644 --- a/zephyr/lib/cpu.c +++ b/zephyr/lib/cpu.c @@ -20,6 +20,7 @@ static uint32_t mic_disable_status; #include #include #include +#include #include #include #include