seL4/libsel4/sel4_arch_include/aarch64/interfaces/sel4arch.xml
2017-08-09 10:01:00 +10:00

144 lines
5.7 KiB
XML

<?xml version="1.0" ?>
<!--
Copyright 2017, Data61
Commonwealth Scientific and Industrial Research Organisation (CSIRO)
ABN 41 687 119 230.
This software may be distributed and modified according to the terms of
the BSD 2-Clause license. Note that NO WARRANTY is provided.
See "LICENSE_BSD2.txt" for details.
@TAG(DATA61_BSD)
-->
<api name="ObjectApiAarch64" label_prefix="aarch64_">
<struct name="seL4_UserContext">
<member name="pc"/>
<member name="sp"/>
<member name="spsr"/>
<member name="x0"/>
<member name="x1"/>
<member name="x2"/>
<member name="x3"/>
<member name="x4"/>
<member name="x5"/>
<member name="x6"/>
<member name="x7"/>
<member name="x8"/>
<member name="x16"/>
<member name="x17"/>
<member name="x18"/>
<member name="x29"/>
<member name="x30"/>
<member name="x9"/>
<member name="x10"/>
<member name="x11"/>
<member name="x12"/>
<member name="x13"/>
<member name="x14"/>
<member name="x15"/>
<member name="x19"/>
<member name="x20"/>
<member name="x21"/>
<member name="x22"/>
<member name="x23"/>
<member name="x24"/>
<member name="x25"/>
<member name="x26"/>
<member name="x27"/>
<member name="x28"/>
</struct>
<interface name="seL4_ARM_PageGlobalDirectory" manual_name="Page Global Directory">
<method id="ARMPageGlobalDirectoryClean_Data" name="Clean_Data" manual_label="pgd_clean"
manual_name="Clean Data">
<brief>
Clean cached pages within a global page directory
</brief>
<description>
See <autoref label="ch:vspace"/>.
</description>
<param dir="in" name="start" type="seL4_Word"
description="Start address"/>
<param dir="in" name="end" type="seL4_Word"
description="End address"/>
</method>
<method id="ARMPageGlobalDirectoryInvalidate_Data" name="Invalidate_Data"
manual_name="Invalidate Data" manual_label="pgd_invalidate">
<brief>
Invalidate cached pages within a global page directory
</brief>
<description>
See <autoref label="ch:vspace"/>.
</description>
<param dir="in" name="start" type="seL4_Word"
description="Start address"/>
<param dir="in" name="end" type="seL4_Word"
description="End address"/>
</method>
<method id="ARMPageGlobalDirectoryCleanInvalidate_Data" name="CleanInvalidate_Data"
manual_name="Clean and Invalidate Data" manual_label="pgd_clean_invalidate">
<brief>
Clean and invalidate cached pages within a global page directory
</brief>
<description>
See <autoref label="ch:vspace"/>.
</description>
<param dir="in" name="start" type="seL4_Word"
description="Start address"/>
<param dir="in" name="end" type="seL4_Word"
description="End address"/>
</method>
<method id="ARMPageGlobalDirectoryUnify_Instruction" name="Unify_Instruction"
manual_name="Unify Instruction" manual_label="pgd_unify_instruction">
<brief>
Clean and invalidate cached instruction pages to point of unification
</brief>
<description>
See <autoref label="ch:vspace"/>.
</description>
<param dir="in" name="start" type="seL4_Word"/>
<param dir="in" name="end" type="seL4_Word"/>
</method>
</interface>
<interface name="seL4_ARM_PageUpperDirectory" manual_name="Page Upper Directory">
<method id="ARMPageUpperDirectoryMap" name="Map">
<brief>
Map an upper page directory
</brief>
<description>
Map an upper page directory (level 1) to a global page directory (level 0)
</description>
<param dir="in" name="pgd" type="seL4_CPtr"
description="Global page directory"/>
<param dir="in" name="vaddr" type="seL4_Word"
description="Virtual address"/>
<param dir="in" name="attr" type="seL4_ARM_VMAttributes"
description="Memory attributes"/>
</method>
<method id="ARMPageUpperDirectoryUnmap" name="Unmap">
</method>
</interface>
<interface name="seL4_ARM_PageDirectory" manual_name="Page Directory">
<method id="ARMPageDirectoryMap" name="Map">
<brief>
Map a page directory
</brief>
<description>
Map a page directory (level 2) to an upper page directory (level 1)
</description>
<param dir="in" name="pud" type="seL4_CPtr"
description="Upper page directory"/>
<param dir="in" name="vaddr" type="seL4_Word"
description="Virtual adress"/>
<param dir="in" name="attr" type="seL4_ARM_VMAttributes"
description="Memory attributes"/>
</method>
<method id="ARMPageDirectoryUnmap" name="Unmap">
<brief>
Unmap a page directory
</brief>
<description>
Unmap a page directory (level 2) from an upper page directory (level 1)
</description>
</method>
</interface>
</api>