setjmp.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /* Define the machine-dependent type `jmp_buf'. Vax version. */
  2. #ifndef _SETJMP_H
  3. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  4. #endif
  5. /* we want to save enough that we can use this to fool RET,
  6. * So we basically save all of the CALLS stack frame. Plus regs. */
  7. #ifndef _ASM
  8. typedef int __jmp_buf[16];
  9. #endif
  10. /* Test if longjmp to JMPBUF would unwind the frame
  11. containing a local variable at ADDRESS. */
  12. #define _JMPBUF_UNWINDS(jmpbuf, address) \
  13. ((void *) (address) < (void *) (jmpbuf[4]))
  14. /*
  15. jmp_buf layout. jmp_buf[0]
  16. void *__cond; The condition handler
  17. void *__psw; mask and PSW bits
  18. void *__ap; argument pointer
  19. void *__fp; frame pointer
  20. void *__pc; program counter
  21. no need to save r0
  22. void *__r1; regs, r0->r11.
  23. void *__r2; regs, r0->r11.
  24. void *__r3; regs, r0->r11.
  25. void *__r4; regs, r0->r11.
  26. void *__r5; regs, r0->r11.
  27. void *__r6; regs, r0->r11.
  28. void *__r7; regs, r0->r11.
  29. void *__r8; regs, r0->r11.
  30. void *__r9; regs, r0->r11.
  31. void *__rA; regs, r0->r11.
  32. void *__rB; regs, r0->r11.
  33. */