1*70b0f278SAntonio Nino Diaz /* 2*70b0f278SAntonio Nino Diaz * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved. 3*70b0f278SAntonio Nino Diaz * 4*70b0f278SAntonio Nino Diaz * SPDX-License-Identifier: BSD-3-Clause 5*70b0f278SAntonio Nino Diaz */ 6*70b0f278SAntonio Nino Diaz 7*70b0f278SAntonio Nino Diaz #ifndef SETJMP__H 8*70b0f278SAntonio Nino Diaz #define SETJMP__H 9*70b0f278SAntonio Nino Diaz 10*70b0f278SAntonio Nino Diaz #define JMP_CTX_X19 0x0 11*70b0f278SAntonio Nino Diaz #define JMP_CTX_X21 0x10 12*70b0f278SAntonio Nino Diaz #define JMP_CTX_X23 0x20 13*70b0f278SAntonio Nino Diaz #define JMP_CTX_X25 0x30 14*70b0f278SAntonio Nino Diaz #define JMP_CTX_X27 0x40 15*70b0f278SAntonio Nino Diaz #define JMP_CTX_X29 0x50 16*70b0f278SAntonio Nino Diaz #define JMP_CTX_SP 0x60 17*70b0f278SAntonio Nino Diaz #define JMP_CTX_END 0x70 /* Aligned to 16 bytes */ 18*70b0f278SAntonio Nino Diaz 19*70b0f278SAntonio Nino Diaz #define JMP_SIZE (JMP_CTX_END >> 3) 20*70b0f278SAntonio Nino Diaz 21*70b0f278SAntonio Nino Diaz #ifndef __ASSEMBLY__ 22*70b0f278SAntonio Nino Diaz 23*70b0f278SAntonio Nino Diaz #include <cdefs.h> 24*70b0f278SAntonio Nino Diaz 25*70b0f278SAntonio Nino Diaz /* Jump buffer hosting x18 - x30 and sp_el0 registers */ 26*70b0f278SAntonio Nino Diaz typedef uint64_t jmp_buf[JMP_SIZE] __aligned(16); 27*70b0f278SAntonio Nino Diaz 28*70b0f278SAntonio Nino Diaz #endif /* __ASSEMBLY__ */ 29*70b0f278SAntonio Nino Diaz 30*70b0f278SAntonio Nino Diaz #endif /* SETJMP__H */ 31