1316485Sdavidcs/*
2316485Sdavidcs * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
3316485Sdavidcs *
4316485Sdavidcs * SPDX-License-Identifier: BSD-2-Clause
5316485Sdavidcs */
6316485Sdavidcs
7316485Sdavidcs#pragma once
8316485Sdavidcs
9316485Sdavidcs#include <sel4/simple_types.h>
10316485Sdavidcs
11316485Sdavidcstypedef seL4_Uint64 seL4_Word;
12316485Sdavidcstypedef seL4_Word seL4_CPtr;
13316485Sdavidcstypedef seL4_Word seL4_NodeId;
14316485Sdavidcstypedef seL4_Word seL4_PAddr;
15316485Sdavidcstypedef seL4_Word seL4_Domain;
16316485Sdavidcs
17316485Sdavidcstypedef seL4_CPtr seL4_ARM_PageUpperDirectory;
18316485Sdavidcstypedef seL4_CPtr seL4_ARM_PageGlobalDirectory;
19316485Sdavidcs/* whether the VSpace refers to a PageUpperDirectory or PageGlobalDirectory directly
20316485Sdavidcs * depends on the physical address size */
21316485Sdavidcstypedef seL4_CPtr seL4_ARM_VSpace;
22316485Sdavidcs
23316485Sdavidcstypedef struct seL4_UserContext_ {
24316485Sdavidcs    /* frame registers */
25316485Sdavidcs    seL4_Word pc, sp, spsr, x0, x1, x2, x3, x4, x5, x6, x7, x8, x16, x17, x18, x29, x30;
26316485Sdavidcs    /* other integer registers */
27316485Sdavidcs    seL4_Word x9, x10, x11, x12, x13, x14, x15, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28;
28316485Sdavidcs    /* Thread ID registers */
29316485Sdavidcs    seL4_Word tpidr_el0, tpidrro_el0;
30316485Sdavidcs} seL4_UserContext;
31316485Sdavidcs