1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH 4 * (C) Copyright 2016 Alexander Graf <agraf@suse.de> 5 */ 6 7#ifndef _SETJMP_H_ 8#define _SETJMP_H_ 1 9 10/* 11 * This really should be opaque, but the EFI implementation wrongly 12 * assumes that a 'struct jmp_buf_data' is defined. 13 */ 14struct jmp_buf_data { 15#if defined(__aarch64__) 16 u64 regs[13]; 17#else 18 u32 regs[10]; /* r4-r9, sl, fp, sp, lr */ 19#endif 20}; 21 22typedef struct jmp_buf_data jmp_buf[1]; 23 24int setjmp(jmp_buf jmp); 25void longjmp(jmp_buf jmp, int ret); 26 27#endif /* _SETJMP_H_ */ 28