1<?xml version="1.0" ?>
2<!--
3  Copyright 2017, Data61
4  Commonwealth Scientific and Industrial Research Organisation (CSIRO)
5  ABN 41 687 119 230.
6
7  This software may be distributed and modified according to the terms of
8  the BSD 2-Clause license. Note that NO WARRANTY is provided.
9  See "LICENSE_BSD2.txt" for details.
10
11     @TAG(DATA61_BSD)
12  -->
13<!-- Please see syscalls.xsd to see the format of this file -->
14<syscalls>
15    <!-- official API syscalls -->
16    <api>
17        <config>
18            <syscall name="Call"      />
19            <syscall name="ReplyRecv" />
20            <syscall name="NBSendRecv" />
21            <syscall name="NBSendWait" />
22            <syscall name="Send"      />
23            <syscall name="NBSend"    />
24            <syscall name="Recv"      />
25            <syscall name="NBRecv"    />
26            <syscall name="Wait"      />
27            <syscall name="NBWait"    />
28            <syscall name="Yield"     />
29        </config>
30    </api>
31    <!-- Syscalls on the unknown syscall path. These definitions will be wrapped in #if condition -->
32    <debug>
33        <config condition="defined CONFIG_PRINTING">
34            <syscall name="DebugPutChar"  />
35            <syscall name="DebugDumpScheduler" />
36        </config>
37        <config condition="defined CONFIG_DEBUG_BUILD">
38            <syscall name="DebugHalt"     />
39            <syscall name="DebugCapIdentify"   />
40            <syscall name="DebugSnapshot" />
41            <syscall name="DebugNameThread"/>
42        </config>
43        <config condition="defined CONFIG_DANGEROUS_CODE_INJECTION">
44            <syscall name="DebugRun"/>
45        </config>
46        <config condition="defined CONFIG_ENABLE_BENCHMARKS">
47            <syscall name="BenchmarkFlushCaches" />
48            <syscall name="BenchmarkResetLog" />
49            <syscall name="BenchmarkFinalizeLog"  />
50            <syscall name="BenchmarkSetLogBuffer"  />
51            <syscall name="BenchmarkNullSyscall"  />
52        </config>
53        <config condition="defined CONFIG_BENCHMARK_TRACK_UTILISATION">
54            <syscall name="BenchmarkGetThreadUtilisation"  />
55            <syscall name="BenchmarkResetThreadUtilisation"  />
56        </config>
57        <config condition="defined CONFIG_KERNEL_X86_DANGEROUS_MSR">
58            <syscall name="X86DangerousWRMSR"/>
59            <syscall name="X86DangerousRDMSR"/>
60        </config>
61        <!-- This is not a debug syscall, but it needs to not appear in the 'API' syscall list
62             so that the check of 'is this a valid syscall' can remain a simple range check.
63             Therefore we'll put this here and the arch code will handle it before
64             passing to handleUnknownSyscall -->
65        <config condition="defined CONFIG_VTX">
66            <syscall name="VMEnter"/>
67        </config>
68    </debug>
69</syscalls>
70