Numworks Epsilon  1.4.1
Graphing Calculator Operating System
setjmp.h
Go to the documentation of this file.
1 #ifndef LIBA_SETJMP_H
2 #define LIBA_SETJMP_H
3 
4 #include "private/macros.h"
5 
6 /* We are preseving registers:
7  * - sp & lr -> 2x4 bytes
8  * - General purpose registers: r4-r9, r10 = sl, r11 = fp -> 8x4 bytes
9  * - Floating point registers: s16-s31 -> 8x8 bytes
10  * - VFP status register: fpscr ->1x4 bytes
11  * The buffer size has to include room for setjmp implementation: 4x4 bytes.
12  * (See C Library ABI for the ARM architecture documentation)
13  * The minimum buffer size is then (2+8+16+1+4)xsizeof(int64_t). */
14 
16 
17 typedef int jmp_buf[31];
18 void longjmp(jmp_buf env, int val);
19 int setjmp(jmp_buf env);
20 
22 
23 #endif
#define LIBA_BEGIN_DECLS
Definition: macros.h:8
int setjmp(jmp_buf env)
LIBA_BEGIN_DECLS typedef int jmp_buf[31]
Definition: setjmp.h:17
void longjmp(jmp_buf env, int val)
#define LIBA_END_DECLS
Definition: macros.h:9