setjmp.h 574 B

12345678910111213141516171819202122232425
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * (C) Copyright 2018 Alexander Graf <agraf@suse.de>
  4. */
  5. #ifndef _SETJMP_H_
  6. #define _SETJMP_H_ 1
  7. /*
  8. * This really should be opaque, but the EFI implementation wrongly
  9. * assumes that a 'struct jmp_buf_data' is defined.
  10. */
  11. struct jmp_buf_data {
  12. /* x2, x8, x9, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, sp */
  13. unsigned long s_regs[12]; /* s0 - s11 */
  14. unsigned long ra;
  15. unsigned long sp;
  16. };
  17. typedef struct jmp_buf_data jmp_buf[1];
  18. int setjmp(jmp_buf jmp);
  19. void longjmp(jmp_buf jmp, int ret);
  20. #endif /* _SETJMP_H_ */