1/*
2 * Copyright 2018, Data61
3 * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
4 * ABN 41 687 119 230.
5 *
6 * This software may be distributed and modified according to the terms of
7 * the GNU General Public License version 2. Note that NO WARRANTY is provided.
8 * See "LICENSE_GPLv2.txt" for details.
9 *
10 * @TAG(DATA61_GPL)
11 */
12
13/*
14 *
15 * Copyright 2016, 2017 Hesham Almatary, Data61/CSIRO <hesham.almatary@data61.csiro.au>
16 * Copyright 2015, 2016 Hesham Almatary <heshamelmatary@gmail.com>
17 */
18
19#ifndef __LIBSEL4_SEL4_ARCH_CONSTANTS_H
20#define __LIBSEL4_SEL4_ARCH_CONSTANTS_H
21
22#ifdef HAVE_AUTOCONF
23#include <autoconf.h>
24#endif
25
26#define seL4_WordBits           64
27/* log 2 bits in a word */
28#define seL4_WordSizeBits       3
29
30#define seL4_SlotBits           5
31#define seL4_NotificationBits   5
32#define seL4_EndpointBits       4
33#define seL4_IPCBufferSizeBits  10
34#define seL4_TCBBits            10
35
36/* Sv39/Sv48 pages/ptes sizes */
37#define seL4_PageTableEntryBits 3
38#define seL4_PageTableIndexBits 9
39
40#define seL4_PageBits          12
41#define seL4_LargePageBits     21
42#define seL4_HugePageBits      30
43#define seL4_TeraPageBits      39
44#define seL4_PageTableBits     12
45
46#define seL4_ASIDPoolIndexBits  10
47#define seL4_ASIDPoolBits       12
48
49/* Untyped size limits */
50#define seL4_MinUntypedBits     4
51#define seL4_MaxUntypedBits     47
52
53enum {
54    seL4_VMFault_IP,
55    seL4_VMFault_Addr,
56    seL4_VMFault_PrefetchFault,
57    seL4_VMFault_FSR,
58    seL4_VMFault_Length,
59} seL4_VMFault_Msg;
60
61enum {
62    seL4_UnknownSyscall_FaultIP,
63    seL4_UnknownSyscall_SP,
64    seL4_UnknownSyscall_RA,
65    seL4_UnknownSyscall_A0,
66    seL4_UnknownSyscall_A1,
67    seL4_UnknownSyscall_A2,
68    seL4_UnknownSyscall_A3,
69    seL4_UnknownSyscall_A4,
70    seL4_UnknownSyscall_A5,
71    seL4_UnknownSyscall_A6,
72    seL4_UnknownSyscall_Syscall,
73    seL4_UnknownSyscall_Length,
74} seL4_UnknownSyscall_Msg;
75
76enum {
77    seL4_UserException_FaultIP,
78    seL4_UserException_SP,
79    seL4_UserException_FLAGS,
80    seL4_UserException_Number,
81    seL4_UserException_Code,
82    seL4_UserException_Length,
83} seL4_UserException_Msg;
84
85#endif
86