Skip to content

Commit

Permalink
header: rtos: decouple headers into rtos specific directories.
Browse files Browse the repository at this point in the history
No functional runtime change, but changes to rtos partitioning and the
layout of headers .

This patch creates RTOS specifc header paths and updates spinlock.h
and kernel.h to show the new usage. Other headers will incrementally follow.
It reuses the current zephyr topleve directory and creates a new
toplevel xtos directory for xtos specific files.

Due to the mixing of RTOS, driver and library headers at the top level include
directory it was necessary to create rtos specific header directories i.e.

src/include/rtos-xtos
src/include/rtos-zephyr

These RTOS include directories will eventually contain RTOS specific headers
whilst common logic and structures will be placed in non RTOS directories.

This will also mean

"#include <sof/spinlock.h>"

will become

"#include <rtos/spinlock.h>"

and will allow easier visualisation of where and why RTOS headers are being used.
This will help to eliminate cross usage of headers between RTOSes.

Subsequqnt patches will move more headers and rtos specific wrppaer
source files into rtos specific locations.

Signed-off-by: Liam Girdwood <[email protected]>
  • Loading branch information
lrgirdwo authored and lgirdwood committed Aug 31, 2022
1 parent 9fc0bad commit 1629a1f
Show file tree
Hide file tree
Showing 143 changed files with 279 additions and 161 deletions.
3 changes: 2 additions & 1 deletion doc/sof.doxygen.in
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ CASE_SENSE_NAMES = NO
INPUT = @top_srcdir@/src/include/ipc \
@top_srcdir@/src/include/kernel \
@top_srcdir@/src/include/user \
@top_srcdir@/src/include/sof
@top_srcdir@/src/include/sof \
@top_srcdir@/xtos/include
# Exlude some 3rd party codec headers with external references
EXCLUDE = @top_srcdir@/src/include/sof/audio/MaxxEffect
RECURSIVE = YES
Expand Down
7 changes: 7 additions & 0 deletions smex/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,10 @@ target_include_directories(smex PRIVATE
"${SOF_ROOT_SOURCE_DIRECTORY}/src/include"
"${SOF_ROOT_SOURCE_DIRECTORY}/rimage/src/include"
)

# TODO: smex should not need RTOS headers: FIX.
if (NOT CONFIG_SOF_ZEPHYR_STRICT_HEADERS)
target_include_directories(smex PRIVATE
"${SOF_ROOT_SOURCE_DIRECTORY}/xtos/include"
)
endif()
4 changes: 0 additions & 4 deletions src/arch/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
# SPDX-License-Identifier: BSD-3-Clause

add_subdirectory(${ARCH})

if(NOT CONFIG_ZEPHYR_SOF_MODULE)
add_subdirectory("xtos-wrapper")
endif()
7 changes: 7 additions & 0 deletions src/arch/host/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@
target_include_directories(sof_public_headers INTERFACE ${PROJECT_SOURCE_DIR}/src/arch/host/include)
target_include_directories(sof_public_headers INTERFACE ${PROJECT_SOURCE_DIR}/src/platform/library/include)

# TODO: library should not need RTOS headers: FIX.
if (NOT CONFIG_SOF_ZEPHYR_STRICT_HEADERS)
target_include_directories(sof_public_headers INTERFACE
${PROJECT_SOURCE_DIR}/xtos/include
)
endif()

# C & ASM flags
target_compile_options(sof_options INTERFACE -g -O3 -Wall -Werror -Wmissing-prototypes
-Wimplicit-fallthrough -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast -Wpointer-arith -DCONFIG_LIBRARY "-imacros${CONFIG_H_PATH}")
Expand Down
3 changes: 2 additions & 1 deletion src/arch/host/include/arch/spinlock.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
* Author: Liam Girdwood <[email protected]>
*/

#ifdef __SOF_SPINLOCK_H__
/* TODO: this needs fixed as part of the "host does not need rtos headers work" */
#ifdef __XTOS_RTOS_SPINLOCK_H__

#ifndef __ARCH_SPINLOCK_H__
#define __ARCH_SPINLOCK_H__
Expand Down
4 changes: 4 additions & 0 deletions src/arch/xtensa/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,14 @@ if(CONFIG_REMBRANDT)
endif()
# includes

# None of these should be included if Zephyr strict headers are used.
if (NOT CONFIG_SOF_ZEPHYR_STRICT_HEADERS)
target_include_directories(sof_options INTERFACE
${PROJECT_SOURCE_DIR}/src/arch/xtensa/include
${PROJECT_SOURCE_DIR}/src/arch/xtensa/xtos
${PROJECT_SOURCE_DIR}/xtos/include
)
endif()

target_include_directories(sof_options INTERFACE ${PROJECT_SOURCE_DIR}/src/platform/${platform_folder}/include)

Expand Down
2 changes: 1 addition & 1 deletion src/arch/xtensa/include/arch/spinlock.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* Author: Liam Girdwood <[email protected]>
*/

#ifdef __SOF_SPINLOCK_H__
#ifdef __XTOS_RTOS_SPINLOCK_H__

#ifndef __ARCH_SPINLOCK_H__
#define __ARCH_SPINLOCK_H__
Expand Down
2 changes: 1 addition & 1 deletion src/arch/xtensa/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#include <sof/init.h>
#include <sof/lib/cpu.h>
#include <sof/sof.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>

#include <ipc/trace.h>

Expand Down
2 changes: 1 addition & 1 deletion src/audio/buffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#include <sof/lib/memory.h>
#include <sof/lib/notifier.h>
#include <sof/list.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <ipc/topology.h>
#include <errno.h>
#include <stddef.h>
Expand Down
2 changes: 1 addition & 1 deletion src/audio/pipeline/pipeline-graph.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#include <sof/lib/uuid.h>
#include <sof/compiler_attributes.h>
#include <sof/list.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/string.h>
#include <ipc/header.h>
#include <ipc/stream.h>
Expand Down
2 changes: 1 addition & 1 deletion src/audio/pipeline/pipeline-params.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#include <sof/lib/mm_heap.h>
#include <sof/compiler_attributes.h>
#include <sof/list.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <ipc/stream.h>
#include <ipc/topology.h>
#include <ipc4/error_status.h>
Expand Down
2 changes: 1 addition & 1 deletion src/audio/pipeline/pipeline-schedule.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#include <sof/schedule/ll_schedule.h>
#include <sof/schedule/schedule.h>
#include <sof/schedule/task.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/string.h>
#include <ipc/header.h>
#include <ipc/stream.h>
Expand Down
5 changes: 2 additions & 3 deletions src/audio/pipeline/pipeline-stream.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,11 @@
#include <sof/lib/dai.h>
#include <sof/lib/wait.h>
#include <sof/list.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/string.h>
#include <ipc/stream.h>
#include <ipc/topology.h>

#include <zephyr/kernel.h>
#include <rtos/kernel.h>

#include <errno.h>
#include <stdbool.h>
Expand Down
2 changes: 1 addition & 1 deletion src/audio/pipeline/pipeline-xrun.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#include <sof/audio/pipeline.h>
#include <sof/ipc/msg.h>
#include <sof/list.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/string.h>
#include <ipc/header.h>
#include <ipc/stream.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/amd/rembrandt/acp_bt_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include <sof/lib/notifier.h>
#include <sof/platform.h>
#include <sof/schedule/schedule.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/math/numbers.h>
#include <sof/trace/trace.h>
#include <ipc/topology.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/amd/rembrandt/acp_dmic_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include <sof/lib/notifier.h>
#include <sof/platform.h>
#include <sof/schedule/schedule.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/math/numbers.h>
#include <sof/trace/trace.h>
#include <ipc/topology.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/amd/rembrandt/acp_hs_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include <sof/lib/notifier.h>
#include <sof/platform.h>
#include <sof/schedule/schedule.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/math/numbers.h>
#include <sof/trace/trace.h>
#include <ipc/topology.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/amd/rembrandt/acp_sp_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include <sof/lib/notifier.h>
#include <sof/platform.h>
#include <sof/schedule/schedule.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/math/numbers.h>
#include <sof/trace/trace.h>
#include <ipc/topology.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/amd/rembrandt/interrupt.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#include <sof/lib/memory.h>
#include <sof/lib/uuid.h>
#include <sof/list.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <xtensa/hal.h>
#include <xtensa/config/core.h>
#include <xtensa/config/specreg.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/amd/rembrandt/ipc.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#include <sof/schedule/edf_schedule.h>
#include <sof/schedule/schedule.h>
#include <sof/schedule/task.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <ipc/header.h>
#include <ipc/topology.h>
#include <errno.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/amd/renoir/acp_bt_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
#include <sof/lib/notifier.h>
#include <sof/platform.h>
#include <sof/schedule/schedule.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/math/numbers.h>
#include <sof/trace/trace.h>
#include <ipc/topology.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/amd/renoir/acp_dmic_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include <sof/lib/notifier.h>
#include <sof/platform.h>
#include <sof/schedule/schedule.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/math/numbers.h>
#include <sof/trace/trace.h>
#include <ipc/topology.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/amd/renoir/acp_sp_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
#include <sof/lib/notifier.h>
#include <sof/platform.h>
#include <sof/schedule/schedule.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/math/numbers.h>
#include <sof/trace/trace.h>
#include <ipc/topology.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/amd/renoir/interrupt.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#include <sof/lib/memory.h>
#include <sof/lib/uuid.h>
#include <sof/list.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <xtensa/hal.h>
#include <xtensa/config/core.h>
#include <xtensa/config/specreg.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/amd/renoir/ipc.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#include <sof/schedule/edf_schedule.h>
#include <sof/schedule/schedule.h>
#include <sof/schedule/task.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <ipc/header.h>
#include <ipc/topology.h>
#include <errno.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/dw/dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
#include <sof/lib/wait.h>
#include <sof/lib/notifier.h>
#include <sof/platform.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <ipc/topology.h>

#include <errno.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/dw/ssi-spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#include <sof/schedule/ll_schedule.h>
#include <sof/schedule/schedule.h>
#include <sof/schedule/task.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/string.h>
#include <ipc/header.h>
#include <ipc/topology.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/generic/dummy-dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
#include <sof/lib/notifier.h>
#include <sof/lib/uuid.h>
#include <sof/platform.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/string.h>
#include <sof/trace/trace.h>
#include <sys/types.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/imx/interrupt-generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include <sof/lib/memory.h>
#include <sof/lib/uuid.h>
#include <sof/list.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <errno.h>
#include <inttypes.h>
#include <stdbool.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/imx/interrupt-irqsteer.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#include <sof/lib/memory.h>
#include <sof/lib/uuid.h>
#include <sof/list.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <errno.h>
#include <inttypes.h>
#include <stdbool.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/imx/ipc.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
#include <sof/schedule/edf_schedule.h>
#include <sof/schedule/schedule.h>
#include <sof/schedule/task.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <ipc/header.h>
#include <ipc/topology.h>
#include <ipc/trace.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/intel/baytrail/ipc.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include <sof/platform.h>
#include <sof/schedule/edf_schedule.h>
#include <sof/schedule/schedule.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <ipc/header.h>
#include <ipc/topology.h>
#include <stdbool.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/intel/baytrail/ssp.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include <sof/lib/alloc.h>
#include <sof/lib/dai.h>
#include <sof/lib/dma.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/trace/trace.h>
#include <ipc/dai.h>
#include <ipc/dai-intel.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/intel/cavs/interrupt.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#include <sof/lib/shim.h>
#include <sof/lib/uuid.h>
#include <sof/list.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>

#include <stdbool.h>
#include <stddef.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/intel/cavs/ipc.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
#include <sof/schedule/edf_schedule.h>
#include <sof/schedule/schedule.h>
#include <sof/schedule/task.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <ipc/header.h>

#include <stdbool.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/intel/cavs/sue-ipc.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#include <sof/schedule/edf_schedule.h>
#include <sof/schedule/schedule.h>
#include <sof/schedule/task.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <ipc/header.h>
#include <stddef.h>
#include <stdint.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/intel/dmic/dmic.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#include <sof/lib/uuid.h>
#include <sof/math/decibels.h>
#include <sof/math/numbers.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/string.h>
#include <ipc/dai.h>
#include <ipc/dai-intel.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/intel/haswell/ipc.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include <sof/schedule/edf_schedule.h>
#include <sof/schedule/schedule.h>
#include <sof/schedule/task.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <ipc/header.h>
#include <ipc/topology.h>
#include <stdbool.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/intel/haswell/ssp.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include <sof/lib/dai.h>
#include <sof/lib/dma.h>
#include <sof/lib/shim.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/trace/trace.h>
#include <ipc/dai.h>
#include <ipc/dai-intel.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/intel/hda/hda-dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include <sof/lib/notifier.h>
#include <sof/platform.h>
#include <sof/schedule/schedule.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/trace/trace.h>
#include <ipc/topology.h>
#include <user/trace.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/intel/ssp/mn.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include <sof/lib/uuid.h>
#include <sof/math/numbers.h>
#include <sof/sof.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/trace/trace.h>

#include <cavs/version.h>
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/intel/ssp/ssp.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include <sof/lib/uuid.h>
#include <sof/lib/wait.h>
#include <sof/platform.h>
#include <sof/spinlock.h>
#include <rtos/spinlock.h>
#include <sof/trace/trace.h>
#include <ipc/dai.h>
#include <ipc/dai-intel.h>
Expand Down
Loading

0 comments on commit 1629a1f

Please sign in to comment.