1/* 2 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230) 3 * Copyright 2015, 2016 Hesham Almatary <heshamelmatary@gmail.com> 4 * 5 * SPDX-License-Identifier: BSD-2-Clause 6 */ 7 8#pragma once 9 10#ifdef HAVE_AUTOCONF 11#include <autoconf.h> 12#endif 13 14#define seL4_WordBits 64 15/* log 2 bits in a word */ 16#define seL4_WordSizeBits 3 17 18#define seL4_SlotBits 5 19#ifdef CONFIG_KERNEL_MCS 20#define seL4_NotificationBits 6 21#define seL4_ReplyBits 5 22#else 23#define seL4_NotificationBits 5 24#endif 25#define seL4_EndpointBits 4 26#define seL4_IPCBufferSizeBits 10 27#ifdef CONFIG_HAVE_FPU 28#define seL4_TCBBits 11 29#else 30#define seL4_TCBBits 10 31#endif 32 33/* Sv39/Sv48 pages/ptes sizes */ 34#define seL4_PageTableEntryBits 3 35#define seL4_PageTableIndexBits 9 36 37#define seL4_PageBits 12 38#define seL4_LargePageBits 21 39#define seL4_HugePageBits 30 40#define seL4_TeraPageBits 39 41#define seL4_PageTableBits 12 42#define seL4_VSpaceBits seL4_PageTableBits 43 44#define seL4_NumASIDPoolsBits 7 45#define seL4_ASIDPoolIndexBits 9 46#define seL4_ASIDPoolBits 12 47 48/* Untyped size limits */ 49#define seL4_MinUntypedBits 4 50#define seL4_MaxUntypedBits 38 51#ifndef __ASSEMBLER__ 52 53typedef enum { 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 61typedef enum { 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 76typedef enum { 77 seL4_UserException_FaultIP, 78 seL4_UserException_SP, 79 seL4_UserException_Number, 80 seL4_UserException_Code, 81 seL4_UserException_Length, 82} seL4_UserException_Msg; 83 84#ifdef CONFIG_KERNEL_MCS 85typedef enum { 86 seL4_TimeoutReply_FaultIP, 87 seL4_TimeoutReply_LR, 88 seL4_TimeoutReply_SP, 89 seL4_TimeoutReply_GP, 90 seL4_TimeoutReply_s0, 91 seL4_TimeoutReply_s1, 92 seL4_TimeoutReply_s2, 93 seL4_TimeoutReply_s3, 94 seL4_TimeoutReply_s4, 95 seL4_TimeoutReply_s5, 96 seL4_TimeoutReply_s6, 97 seL4_TimeoutReply_s7, 98 seL4_TimeoutReply_s8, 99 seL4_TimeoutReply_s9, 100 seL4_TimeoutReply_s10, 101 seL4_TimeoutReply_s11, 102 seL4_TimeoutReply_a0, 103 seL4_TimeoutReply_a1, 104 seL4_TimeoutReply_a2, 105 seL4_TimeoutReply_a3, 106 seL4_TimeoutReply_a4, 107 seL4_TimeoutReply_a5, 108 seL4_TimeoutReply_a6, 109 seL4_TimeoutReply_a7, 110 seL4_TimeoutReply_t0, 111 seL4_TimeoutReply_t1, 112 seL4_TimeoutReply_t2, 113 seL4_TimeoutReply_t3, 114 seL4_TimeoutReply_t4, 115 seL4_TimeoutReply_t5, 116 seL4_TimeoutReply_t6, 117 seL4_TimeoutReply_TP, 118 seL4_TimeoutReply_Length, 119} seL4_TimeoutReply_Msg; 120 121typedef enum { 122 seL4_Timeout_Data, 123 seL4_Timeout_Consumed, 124 seL4_Timeout_Length, 125} seL4_TimeoutMsg; 126#endif 127#endif /* __ASSEMBLER__ */ 128 129/* First address in the virtual address space that is not accessible to user level */ 130#define seL4_UserTop 0x0000003ffffff000 131 132#ifdef CONFIG_ENABLE_BENCHMARKS 133/* size of kernel log buffer in bytes */ 134#define seL4_LogBufferSize (LIBSEL4_BIT(20)) 135#endif /* CONFIG_ENABLE_BENCHMARKS */ 136