blob: 72383d43303b87ee7bba37852b13771add55728a [file] [log] [blame]
Rick Chen9dbb9732018-05-29 14:10:06 +08001/* SPDX-License-Identifier: GPL-2.0+ */
Alexander Graf3bb8f012018-04-23 07:59:43 +02002/*
3 * (C) Copyright 2018 Alexander Graf <agraf@suse.de>
Alexander Graf3bb8f012018-04-23 07:59:43 +02004 */
5
6#ifndef _SETJMP_H_
7#define _SETJMP_H_ 1
8
9/*
10 * This really should be opaque, but the EFI implementation wrongly
11 * assumes that a 'struct jmp_buf_data' is defined.
12 */
13struct jmp_buf_data {
14 /* x2, x8, x9, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, sp */
15 unsigned long s_regs[12]; /* s0 - s11 */
16 unsigned long ra;
17 unsigned long sp;
18};
19
20typedef struct jmp_buf_data jmp_buf[1];
21
22int setjmp(jmp_buf jmp);
23void longjmp(jmp_buf jmp, int ret);
24
25#endif /* _SETJMP_H_ */