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 - uses: actions/checkout@v4
- name: run xmllint - name: run xmllint
run: | run: |
find libsel4 -name "sel4*.xml" | \ find libsel4 -name "object-api*.xml" | \
xargs xmllint --schema libsel4/tools/sel4_idl.xsd --noout xargs xmllint --schema libsel4/tools/sel4_idl.xsd --noout
xmllint --schema libsel4/include/api/syscall.xsd --noout libsel4/include/api/syscall.xml 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 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) 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. 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 #### Other Changes

View File

@@ -405,7 +405,8 @@ set(xml_headers "")
set(header_dest "gen_headers/arch/api/invocation.h") set(header_dest "gen_headers/arch/api/invocation.h")
gen_invocation_header( gen_invocation_header(
OUTPUT ${header_dest} 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 ARCH
) )
list(APPEND xml_headers "${header_dest}") list(APPEND xml_headers "${header_dest}")
@@ -415,7 +416,7 @@ set(header_dest "gen_headers/arch/api/sel4_invocation.h")
gen_invocation_header( gen_invocation_header(
OUTPUT "${header_dest}" OUTPUT "${header_dest}"
XML 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 SEL4ARCH
) )
list(APPEND xml_headers "${header_dest}") 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") set(header_dest "gen_headers/api/invocation.h")
gen_invocation_header( gen_invocation_header(
OUTPUT "${header_dest}" 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 xml_headers "${header_dest}")
list(APPEND gen_files_list "${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 "*.pbf"
PATTERN "api/syscall.xml" PATTERN "api/syscall.xml"
PATTERN "api/syscall.xsd" PATTERN "api/syscall.xsd"
PATTERN "object-api*.xml"
PATTERN "gen_config.json" 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 libsel4 sources to libsel4/src
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/libsel4/src/" DESTINATION libsel4/src) install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/libsel4/src/" DESTINATION libsel4/src)
# Install additional support files # 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 # Currently we use autoconf.h, so generate one of those
generate_autoconf(sel4_autoconf "kernel;sel4") 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( gen_invocation_header(
OUTPUT sel4_arch_include/${KernelSel4Arch}/sel4/sel4_arch/invocation.h 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 LIBSEL4 SEL4ARCH
) )
gen_invocation_header( gen_invocation_header(
OUTPUT arch_include/${KernelArch}/sel4/arch/invocation.h 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 LIBSEL4 ARCH
) )
@@ -142,9 +147,9 @@ add_custom_command(
set( set(
interface_xmls interface_xmls
"${CMAKE_CURRENT_SOURCE_DIR}/sel4_arch_include/${KernelSel4Arch}/interfaces/sel4arch.xml" "${CMAKE_CURRENT_SOURCE_DIR}/sel4_arch_include/${KernelSel4Arch}/interfaces/object-api-sel4-arch.xml"
"${CMAKE_CURRENT_SOURCE_DIR}/arch_include/${KernelArch}/interfaces/sel4arch.xml" "${CMAKE_CURRENT_SOURCE_DIR}/arch_include/${KernelArch}/interfaces/object-api-arch.xml"
"${CMAKE_CURRENT_SOURCE_DIR}/include/interfaces/sel4.xml" "${CMAKE_CURRENT_SOURCE_DIR}/include/interfaces/object-api.xml"
) )
add_custom_command( add_custom_command(

View File

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

View File

@@ -5,9 +5,9 @@
# SPDX-License-Identifier: BSD-2-Clause # 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 if [ -z "$xml_sources" ]; then
echo "Unable to find sel4arch.xml files" echo "Unable to find object-api*.xml files"
exit 1 exit 1
fi fi