1234567891011121314151617181920212223242526272829303132333435363738 |
- #ifndef _SETJMP_H
- #define _SETJMP_H
-
- FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
-
- #include <stdint.h>
-
- /** A jump buffer */
- typedef struct {
- /** Saved r4 */
- uint32_t r4;
- /** Saved r5 */
- uint32_t r5;
- /** Saved r6 */
- uint32_t r6;
- /** Saved r7 */
- uint32_t r7;
- /** Saved r8 */
- uint32_t r8;
- /** Saved r9 */
- uint32_t r9;
- /** Saved r10 */
- uint32_t r10;
- /** Saved frame pointer (r11) */
- uint32_t fp;
- /** Saved stack pointer (r13) */
- uint32_t sp;
- /** Saved link register (r14) */
- uint32_t lr;
- } jmp_buf[1];
-
- extern int __asmcall __attribute__ (( returns_twice ))
- setjmp ( jmp_buf env );
-
- extern void __asmcall __attribute__ (( noreturn ))
- longjmp ( jmp_buf env, int val );
-
- #endif /* _SETJMP_H */
|