libsel4: rename interface XML files

Before, some object API XML files conflicted when the include,
arch_include, and sel4_arch_include directories were combined:

- include/interfaces/sel4.xml
- arch_include/*/interfaces/sel4arch.xml
- sel4_arch_include/*/interfaces/sel4arch.xml

This commit renames them to:

- include/interfaces/object-api.xml
- arch_include/*/interfaces/object-api-arch.xml
- sel4_arch_include/*/interfaces/object-api-sel4-arch.xml

Now, when the include, arch_include, and sel4_arch_include directories
are combined, we are left with:

- interfaces/object-api.xml
- interfaces/object-api-arch.xml
- interfaces/object-api-sel4-arch.xml

Signed-off-by: Nick Spinale <nick@nickspinale.com>
This commit is contained in:
Nick Spinale
2022-11-30 13:02:56 +00:00
committed by Gerwin Klein
parent 9a22e40b46
commit dbd6efc507
16 changed files with 31 additions and 38 deletions

View File

@@ -34,6 +34,6 @@ jobs:
- uses: actions/checkout@v4
- name: run xmllint
run: |
find libsel4 -name "sel4*.xml" | \
find libsel4 -name "object-api*.xml" | \
xargs xmllint --schema libsel4/tools/sel4_idl.xsd --noout
xmllint --schema libsel4/include/api/syscall.xsd --noout libsel4/include/api/syscall.xml

View File

@@ -101,6 +101,10 @@ description indicates whether it is SOURCE-COMPATIBLE, BINARY-COMPATIBLE, or BRE
The configuration option is not enabled by default as it requires access to the CLINT which depends on the platform
and whether the M-mode firmware allows S-mode to access the CLINT. For example, newer versions of OpenSBI (1.0 and above)
do not allow direct access of the CLINT.
* Rename object interface files `include/interfaces/sel4.xml`, `arch_include/*/interfaces/sel4arch.xml`, and
`sel4_arch_include/*/interfaces/sel4arch.xml` to `include/interfaces/object-api.xml`,
`arch_include/*/interfaces/object-api-arch.xml`, and `sel4_arch_include/*/interfaces/object-api-sel4-arch.xml`,
respectively.
#### Other Changes

View File

@@ -405,7 +405,8 @@ set(xml_headers "")
set(header_dest "gen_headers/arch/api/invocation.h")
gen_invocation_header(
OUTPUT ${header_dest}
XML ${CMAKE_CURRENT_SOURCE_DIR}/libsel4/arch_include/${KernelArch}/interfaces/sel4arch.xml
XML
${CMAKE_CURRENT_SOURCE_DIR}/libsel4/arch_include/${KernelArch}/interfaces/object-api-arch.xml
ARCH
)
list(APPEND xml_headers "${header_dest}")
@@ -415,7 +416,7 @@ set(header_dest "gen_headers/arch/api/sel4_invocation.h")
gen_invocation_header(
OUTPUT "${header_dest}"
XML
"${CMAKE_CURRENT_SOURCE_DIR}/libsel4/sel4_arch_include/${KernelSel4Arch}/interfaces/sel4arch.xml"
"${CMAKE_CURRENT_SOURCE_DIR}/libsel4/sel4_arch_include/${KernelSel4Arch}/interfaces/object-api-sel4-arch.xml"
SEL4ARCH
)
list(APPEND xml_headers "${header_dest}")
@@ -424,7 +425,7 @@ list(APPEND gen_files_list "${header_dest}")
set(header_dest "gen_headers/api/invocation.h")
gen_invocation_header(
OUTPUT "${header_dest}"
XML "${CMAKE_CURRENT_SOURCE_DIR}/libsel4/include/interfaces/sel4.xml"
XML "${CMAKE_CURRENT_SOURCE_DIR}/libsel4/include/interfaces/object-api.xml"
)
list(APPEND xml_headers "${header_dest}")
list(APPEND gen_files_list "${header_dest}")
@@ -742,26 +743,9 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
PATTERN "*.pbf"
PATTERN "api/syscall.xml"
PATTERN "api/syscall.xsd"
PATTERN "object-api*.xml"
PATTERN "gen_config.json"
)
# Manually install object API files with non-conflicting names
install(
FILES "${CMAKE_CURRENT_SOURCE_DIR}/libsel4/include/interfaces/sel4.xml"
DESTINATION libsel4/include/interfaces
RENAME object-api.xml
)
install(
FILES
"${CMAKE_CURRENT_SOURCE_DIR}/libsel4/arch_include/${KernelArch}/interfaces/sel4arch.xml"
DESTINATION libsel4/include/interfaces
RENAME object-api-arch.xml
)
install(
FILES
"${CMAKE_CURRENT_SOURCE_DIR}/libsel4/sel4_arch_include/${KernelSel4Arch}/interfaces/sel4arch.xml"
DESTINATION libsel4/include/interfaces
RENAME object-api-sel4-arch.xml
)
# Install libsel4 sources to libsel4/src
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/libsel4/src/" DESTINATION libsel4/src)
# Install additional support files

View File

@@ -54,17 +54,22 @@ add_config_library(sel4 "${configure_string}")
# Currently we use autoconf.h, so generate one of those
generate_autoconf(sel4_autoconf "kernel;sel4")
gen_invocation_header(OUTPUT include/sel4/invocation.h XML include/interfaces/sel4.xml LIBSEL4)
gen_invocation_header(
OUTPUT include/sel4/invocation.h
XML include/interfaces/object-api.xml
LIBSEL4
)
gen_invocation_header(
OUTPUT sel4_arch_include/${KernelSel4Arch}/sel4/sel4_arch/invocation.h
XML "${CMAKE_CURRENT_SOURCE_DIR}/sel4_arch_include/${KernelSel4Arch}/interfaces/sel4arch.xml"
XML
"${CMAKE_CURRENT_SOURCE_DIR}/sel4_arch_include/${KernelSel4Arch}/interfaces/object-api-sel4-arch.xml"
LIBSEL4 SEL4ARCH
)
gen_invocation_header(
OUTPUT arch_include/${KernelArch}/sel4/arch/invocation.h
XML "${CMAKE_CURRENT_SOURCE_DIR}/arch_include/${KernelArch}/interfaces/sel4arch.xml"
XML "${CMAKE_CURRENT_SOURCE_DIR}/arch_include/${KernelArch}/interfaces/object-api-arch.xml"
LIBSEL4 ARCH
)
@@ -142,9 +147,9 @@ add_custom_command(
set(
interface_xmls
"${CMAKE_CURRENT_SOURCE_DIR}/sel4_arch_include/${KernelSel4Arch}/interfaces/sel4arch.xml"
"${CMAKE_CURRENT_SOURCE_DIR}/arch_include/${KernelArch}/interfaces/sel4arch.xml"
"${CMAKE_CURRENT_SOURCE_DIR}/include/interfaces/sel4.xml"
"${CMAKE_CURRENT_SOURCE_DIR}/sel4_arch_include/${KernelSel4Arch}/interfaces/object-api-sel4-arch.xml"
"${CMAKE_CURRENT_SOURCE_DIR}/arch_include/${KernelArch}/interfaces/object-api-arch.xml"
"${CMAKE_CURRENT_SOURCE_DIR}/include/interfaces/object-api.xml"
)
add_custom_command(

View File

@@ -162,14 +162,14 @@ ${GeneratedMarkdownDir}/%.md: ${DoxygenXml}/group__%.xml Makefile
generated-markdown: $(addsuffix .md, $(addprefix ${GeneratedMarkdownDir}/, ${SYSCALLS} ${OBJECTS}))
# Generate object invocation prototypes
${Stage}/group_defs.h: ${Libsel4Dir}/include/interfaces/sel4.xml \
${Libsel4Dir}/arch_include/x86/interfaces/sel4arch.xml \
${Libsel4Dir}/arch_include/arm/interfaces/sel4arch.xml \
${Libsel4Dir}/sel4_arch_include/aarch32/interfaces/sel4arch.xml \
${Libsel4Dir}/sel4_arch_include/aarch64/interfaces/sel4arch.xml \
${Libsel4Dir}/sel4_arch_include/ia32/interfaces/sel4arch.xml \
${Libsel4Dir}/sel4_arch_include/x86_64/interfaces/sel4arch.xml \
${Libsel4Dir}/arch_include/riscv/interfaces/sel4arch.xml
${Stage}/group_defs.h: ${Libsel4Dir}/include/interfaces/object-api.xml \
${Libsel4Dir}/arch_include/x86/interfaces/object-api-arch.xml \
${Libsel4Dir}/arch_include/arm/interfaces/object-api-arch.xml \
${Libsel4Dir}/sel4_arch_include/aarch32/interfaces/object-api-sel4-arch.xml \
${Libsel4Dir}/sel4_arch_include/aarch64/interfaces/object-api-sel4-arch.xml \
${Libsel4Dir}/sel4_arch_include/ia32/interfaces/object-api-sel4-arch.xml \
${Libsel4Dir}/sel4_arch_include/x86_64/interfaces/object-api-sel4-arch.xml \
${Libsel4Dir}/arch_include/riscv/interfaces/object-api-arch.xml
@echo "====> Generating documented object invocation header"
${Q}${PYTHON} ${GenerateObjectInvocationTool} --dtd ${InterfaceDtd} --output ${Stage} $^

View File

@@ -5,9 +5,9 @@
# SPDX-License-Identifier: BSD-2-Clause
#
xml_sources=$(find ../libsel4/arch_include/*/interfaces ../libsel4/sel4_arch_include/*/interfaces -name 'sel4arch.xml')
xml_sources=$(find ../libsel4/arch_include/*/interfaces ../libsel4/sel4_arch_include/*/interfaces -name 'object-api*.xml')
if [ -z "$xml_sources" ]; then
echo "Unable to find sel4arch.xml files"
echo "Unable to find object-api*.xml files"
exit 1
fi