1<?xml version="1.0" ?> 2<!-- 3 Copyright 2020, Data61, CSIRO (ABN 41 687 119 230) 4 5 SPDX-License-Identifier: BSD-2-Clause 6--> 7 8<api name="ObjectApiAarch32" label_prefix="aarch32_"> 9 <struct name="seL4_UserContext"> 10 <member name="pc"/> 11 <member name="sp"/> 12 <member name="cpsr"/> 13 <member name="r0"/> 14 <member name="r1"/> 15 <member name="r8"/> 16 <member name="r9"/> 17 <member name="r10"/> 18 <member name="r11"/> 19 <member name="r12"/> 20 <member name="r2"/> 21 <member name="r3"/> 22 <member name="r4"/> 23 <member name="r5"/> 24 <member name="r6"/> 25 <member name="r7"/> 26 <member name="r14"/> 27 <member name="tpidrurw"/> 28 <member name="tpidruro"/> 29 </struct> 30 <interface name="seL4_ARM_PageDirectory" manual_name="Page Directory" 31 cap_description="Capability to the page directory being operated on."> 32 <method id="ARMPDClean_Data" name="Clean_Data" manual_name="Clean Data" manual_label="pd_clean"> 33 <brief> 34 Clean cached pages within a page directory 35 </brief> 36 <description> 37 <docref>See <autoref label="ch:vspace"/>.</docref> 38 </description> 39 <param dir="in" name="start" type="seL4_Word" 40 description="Start address"/> 41 <param dir="in" name="end" type="seL4_Word" 42 description="End address"/> 43 <error name="seL4_FailedLookup"> 44 <description> 45 The <texttt text="_service"/> is not assigned to an ASID pool. 46 </description> 47 </error> 48 <error name="seL4_IllegalOperation"> 49 <description> 50 The <texttt text="_service"/> is a CPtr to a capability of the wrong type. 51 Or, <texttt text="start"/> or <texttt text="end"/> is in the kernel virtual address range. 52 </description> 53 </error> 54 <error name="seL4_InvalidArgument"> 55 <description> 56 The <texttt text="start"/> is greater than or equal to <texttt text="end"/>. 57 </description> 58 </error> 59 <error name="seL4_InvalidCapability"> 60 <description> 61 The <texttt text="_service"/> is a CPtr to a capability of the wrong type. 62 Or, <texttt text="_service"/> is not assigned to an ASID pool. 63 </description> 64 </error> 65 <error name="seL4_RangeError"> 66 <description> 67 The specified range crosses a page boundary. 68 </description> 69 </error> 70 </method> 71 <method id="ARMPDInvalidate_Data" name="Invalidate_Data" manual_name="Invalidate Data" manual_label="pd_invalidate"> 72 <brief> 73 Invalidate cached pages within a page directory 74 </brief> 75 <description> 76 <docref>See <autoref label="ch:vspace"/>.</docref> 77 </description> 78 <param dir="in" name="start" type="seL4_Word" 79 description="Start address"/> 80 <param dir="in" name="end" type="seL4_Word" 81 description="End address"/> 82 <error name="seL4_FailedLookup"> 83 <description> 84 The <texttt text="_service"/> is not assigned to an ASID pool. 85 </description> 86 </error> 87 <error name="seL4_IllegalOperation"> 88 <description> 89 The <texttt text="_service"/> is a CPtr to a capability of the wrong type. 90 Or, <texttt text="start"/> or <texttt text="end"/> is in the kernel virtual address range. 91 </description> 92 </error> 93 <error name="seL4_InvalidArgument"> 94 <description> 95 The <texttt text="start"/> is greater than or equal to <texttt text="end"/>. 96 </description> 97 </error> 98 <error name="seL4_InvalidCapability"> 99 <description> 100 The <texttt text="_service"/> is a CPtr to a capability of the wrong type. 101 Or, <texttt text="_service"/> is not assigned to an ASID pool. 102 </description> 103 </error> 104 <error name="seL4_RangeError"> 105 <description> 106 The specified range crosses a page boundary. 107 </description> 108 </error> 109 </method> 110 <method id="ARMPDCleanInvalidate_Data" name="CleanInvalidate_Data" 111 manual_name="Clean and Invalidate Data" manual_label="pd_clean_invalidate"> 112 <brief> 113 Clean and invalidate cached pages within a page directory 114 </brief> 115 <description> 116 <docref>See <autoref label="ch:vspace"/>.</docref> 117 </description> 118 <param dir="in" name="start" type="seL4_Word" 119 description="Start address"/> 120 <param dir="in" name="end" type="seL4_Word" 121 description="End address"/> 122 <error name="seL4_FailedLookup"> 123 <description> 124 The <texttt text="_service"/> is not assigned to an ASID pool. 125 </description> 126 </error> 127 <error name="seL4_IllegalOperation"> 128 <description> 129 The <texttt text="_service"/> is a CPtr to a capability of the wrong type. 130 Or, <texttt text="start"/> or <texttt text="end"/> is in the kernel virtual address range. 131 </description> 132 </error> 133 <error name="seL4_InvalidArgument"> 134 <description> 135 The <texttt text="start"/> is greater than or equal to <texttt text="end"/>. 136 </description> 137 </error> 138 <error name="seL4_InvalidCapability"> 139 <description> 140 The <texttt text="_service"/> is a CPtr to a capability of the wrong type. 141 Or, <texttt text="_service"/> is not assigned to an ASID pool. 142 </description> 143 </error> 144 <error name="seL4_RangeError"> 145 <description> 146 The specified range crosses a page boundary. 147 </description> 148 </error> 149 </method> 150 <method id="ARMPDUnify_Instruction" name="Unify_Instruction" manual_name="Unify Instruction" manual_label="pd_unify_instruction"> 151 <brief> 152 Clean and invalidate cached instruction pages to point of unification 153 </brief> 154 <description> 155 <docref>See <autoref label="ch:vspace"/>.</docref> 156 </description> 157 <param dir="in" name="start" type="seL4_Word" 158 description="Start address"/> 159 <param dir="in" name="end" type="seL4_Word" 160 description="End address"/> 161 <error name="seL4_FailedLookup"> 162 <description> 163 The <texttt text="_service"/> is not assigned to an ASID pool. 164 </description> 165 </error> 166 <error name="seL4_IllegalOperation"> 167 <description> 168 The <texttt text="_service"/> is a CPtr to a capability of the wrong type. 169 Or, <texttt text="start"/> or <texttt text="end"/> is in the kernel virtual address range. 170 </description> 171 </error> 172 <error name="seL4_InvalidArgument"> 173 <description> 174 The <texttt text="start"/> is greater than or equal to <texttt text="end"/>. 175 </description> 176 </error> 177 <error name="seL4_InvalidCapability"> 178 <description> 179 The <texttt text="_service"/> is a CPtr to a capability of the wrong type. 180 Or, <texttt text="_service"/> is not assigned to an ASID pool. 181 </description> 182 </error> 183 <error name="seL4_RangeError"> 184 <description> 185 The specified range crosses a page boundary. 186 </description> 187 </error> 188 </method> 189 </interface> 190</api> 191