setjmp.h 810 B

123456789101112131415161718192021222324252627282930313233
  1. /* Define the machine-dependent type `jmp_buf'. i960 version. */
  2. #ifndef _SETJMP_H
  3. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  4. #endif
  5. /*
  6. * assume that every single local and global register
  7. * must be saved.
  8. *
  9. * ___SAVEREGS is the number of quads to save.
  10. *
  11. * Using the structure will guarantee quad-word alignment for the
  12. * jmp_buf type.
  13. */
  14. #define ___SAVEREGS 8
  15. typedef struct __jmp_buf__ {
  16. long _q0;
  17. long _q1;
  18. long _q2;
  19. long _q3;
  20. } __attribute__ ((aligned (16))) __jmp_buf[___SAVEREGS] ;
  21. /* I have not yet figured out what this should be for the i960... */
  22. #if 0
  23. /* Test if longjmp to JMPBUF would unwind the frame
  24. containing a local variable at ADDRESS. */
  25. #define _JMPBUF_UNWINDS(jmpbuf, address) \
  26. ((void *) (address) < (jmpbuf)[0].__sp)
  27. #endif