1/* 2 * Copyright 2017, 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 BSD 2-Clause license. Note that NO WARRANTY is provided. 8 * See "LICENSE_BSD2.txt" for details. 9 * 10 * @TAG(DATA61_BSD) 11 */ 12 13#pragma once 14 15#include <sel4/sel4.h> 16#include <stddef.h> 17#include <utils/util.h> 18 19static UNUSED const char *register_names[] = { 20 "pc", 21 "sp", 22 "cpsr", 23 "r0", 24 "r1", 25 "r8", 26 "r9", 27 "r10", 28 "r11", 29 "r12", 30 "r2", 31 "r3", 32 "r4", 33 "r5", 34 "r6", 35 "r7", 36 "lr", 37 "tpidrurw", 38}; 39 40/* assert that register_names correspond to seL4_UserContext */ 41compile_time_assert(pc_correct_position, offsetof(seL4_UserContext, pc) == 0); 42compile_time_assert(sp_correct_position, offsetof(seL4_UserContext, sp) == 1 * sizeof(seL4_Word)); 43compile_time_assert(cpsr_correct_position, offsetof(seL4_UserContext, cpsr) == 2 * sizeof(seL4_Word)); 44compile_time_assert(r0_correct_position, offsetof(seL4_UserContext, r0) == 3 * sizeof(seL4_Word)); 45compile_time_assert(r1_correct_position, offsetof(seL4_UserContext, r1) == 4 * sizeof(seL4_Word)); 46compile_time_assert(r8_correct_position, offsetof(seL4_UserContext, r8) == 5 * sizeof(seL4_Word)); 47compile_time_assert(r9_correct_position, offsetof(seL4_UserContext, r9) == 6 * sizeof(seL4_Word)); 48compile_time_assert(r10_correct_position, offsetof(seL4_UserContext, r10) == 7 * sizeof(seL4_Word)); 49compile_time_assert(r11_correct_position, offsetof(seL4_UserContext, r11) == 8 * sizeof(seL4_Word)); 50compile_time_assert(r12_correct_position, offsetof(seL4_UserContext, r12) == 9 * sizeof(seL4_Word)); 51compile_time_assert(r2_correct_position, offsetof(seL4_UserContext, r2) == 10 * sizeof(seL4_Word)); 52compile_time_assert(r3_correct_position, offsetof(seL4_UserContext, r3) == 11 * sizeof(seL4_Word)); 53compile_time_assert(r4_correct_position, offsetof(seL4_UserContext, r4) == 12 * sizeof(seL4_Word)); 54compile_time_assert(r5_correct_position, offsetof(seL4_UserContext, r5) == 13 * sizeof(seL4_Word)); 55compile_time_assert(r6_correct_position, offsetof(seL4_UserContext, r6) == 14 * sizeof(seL4_Word)); 56compile_time_assert(r7_correct_position, offsetof(seL4_UserContext, r7) == 15 * sizeof(seL4_Word)); 57compile_time_assert(r14_correct_position, offsetof(seL4_UserContext, r14) == 16 * sizeof(seL4_Word)); 58compile_time_assert(tpidrurw_correct_position, offsetof(seL4_UserContext, tpidrurw) == 17 * sizeof(seL4_Word)); 59 60