133 lines
5.7 KiB
XML
133 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="ObjectApiAarch32" label_prefix="aarch32_">
|
|
<struct name="seL4_UserContext">
|
|
<member name="pc"/>
|
|
<member name="sp"/>
|
|
<member name="cpsr"/>
|
|
<member name="r0"/>
|
|
<member name="r1"/>
|
|
<member name="r8"/>
|
|
<member name="r9"/>
|
|
<member name="r10"/>
|
|
<member name="r11"/>
|
|
<member name="r12"/>
|
|
<member name="r2"/>
|
|
<member name="r3"/>
|
|
<member name="r4"/>
|
|
<member name="r5"/>
|
|
<member name="r6"/>
|
|
<member name="r7"/>
|
|
<member name="r14"/>
|
|
</struct>
|
|
<interface name="seL4_ARM_PageDirectory" manual_name="Page Directory">
|
|
<method id="ARMPDClean_Data" name="Clean_Data" manual_name="Clean Data" manual_label="pd_clean">
|
|
<brief>
|
|
Clean cached pages within a 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="ARMPDInvalidate_Data" name="Invalidate_Data" manual_name="Invalidate Data" manual_label="pd_invalidate">
|
|
<brief>
|
|
Invalidate cached pages within a 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="ARMPDCleanInvalidate_Data" name="CleanInvalidate_Data"
|
|
manual_name="Clean and Invalidate Data" manual_label="pd_clean_invalidate">
|
|
<brief>
|
|
Clean and invalidate cached pages within a 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="ARMPDUnify_Instruction" name="Unify_Instruction" manual_name="Unify Instruction" manual_label="pd_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"
|
|
description="Start address"/>
|
|
<param dir="in" name="end" type="seL4_Word"
|
|
description="End address"/>
|
|
</method>
|
|
</interface>
|
|
<interface name="seL4_ARM_VCPU" manual_name="VCPU">
|
|
<method id="ARMVCPUSetTCB" name="SetTCB" condition="defined(CONFIG_ARM_HYPERVISOR_SUPPORT)"
|
|
manual_name="Set TCB">
|
|
<brief>
|
|
Bind a TCB to a virtual CPU
|
|
</brief>
|
|
<description>
|
|
There is a 1:1 relationship between a virtual CPU and a TCB. If either (or both) of them is
|
|
associated with another one, they will be dissociated, and then associated to the
|
|
ones called in this system calls.
|
|
</description>
|
|
<param dir="in" name="tcb" type="seL4_TCB"
|
|
description="Capability to TCB to bind to a virtual CPU"/>
|
|
</method>
|
|
<method id="ARMVCPUInjectIRQ" name="InjectIRQ" condition="defined(CONFIG_ARM_HYPERVISOR_SUPPORT)"
|
|
manual_name="Inject IRQ">
|
|
<brief>
|
|
Inject an IRQ to a virtual CPU
|
|
</brief>
|
|
<param dir="in" name="virq" type="seL4_Uint16"
|
|
description="Virtual IRQ ID"/>
|
|
<param dir="in" name="priority" type="seL4_Uint8"
|
|
description="Priority of the IRQ to be injected"/>
|
|
<param dir="in" name="group" type="seL4_Uint8"
|
|
description="IRQ group"/>
|
|
<param dir="in" name="index" type="seL4_Uint8"
|
|
description="IRQ index"/>
|
|
</method>
|
|
<method id="ARMVCPUReadReg" name="ReadRegs" condition="defined(CONFIG_ARM_HYPERVISOR_SUPPORT)"
|
|
manual_name="Read Registers">
|
|
<brief>
|
|
Read a virtual CPU register
|
|
</brief>
|
|
<param dir="in" name="field" type="seL4_Uint32"
|
|
description="Register to read from a VCPU"/>
|
|
<param dir="out" name="value" type="seL4_Uint32"
|
|
description="Returned value of the VCPU register"/>
|
|
</method>
|
|
<method id="ARMVCPUWriteReg" name="WriteRegs" condition="defined(CONFIG_ARM_HYPERVISOR_SUPPORT)"
|
|
manual_name="Write Registers">
|
|
<brief>
|
|
Write a virtual CPU register
|
|
</brief>
|
|
<param dir="in" name="field" type="seL4_Uint32"
|
|
description="Register ID to write to a VCPU"/>
|
|
<param dir="in" name="value" type="seL4_Uint32"
|
|
description="Value to be written to the VCPU register"/>
|
|
</method>
|
|
</interface>
|
|
</api>
|