summaryrefslogtreecommitdiff
path: root/apps/codecs/lib/setjmp.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/lib/setjmp.h')
-rw-r--r--apps/codecs/lib/setjmp.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/apps/codecs/lib/setjmp.h b/apps/codecs/lib/setjmp.h
new file mode 100644
index 0000000000..4bcf6af623
--- /dev/null
+++ b/apps/codecs/lib/setjmp.h
@@ -0,0 +1,59 @@
1#ifndef _SETJMP_H_
2#define _SETJMP_H_
3
4/* Combined parts of include/setjmp.h and include/machine/setjmp.h in
5 * newlib 1.17.0, with minor changes for Rockbox.
6 */
7
8#ifdef CPU_ARM
9/*
10 * All callee preserved registers:
11 * v1 - v7, fp, ip, sp, lr, f4, f5, f6, f7
12 */
13#define _JBLEN 23
14#endif
15
16/* necv70 was 9 as well. */
17
18#ifdef CPU_COLDFIRE
19/*
20 * onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6,
21 * fp2-fp7 for 68881.
22 * All else recovered by under/over(flow) handling.
23 */
24#define _JBLEN 34
25#endif
26
27#ifdef __mips__
28#ifdef __mips64
29#define _JBTYPE long long
30#endif
31#ifdef __mips_soft_float
32#define _JBLEN 11
33#else
34#define _JBLEN 23
35#endif
36#endif
37
38#ifdef __sh__
39#if __SH5__
40#define _JBLEN 50
41#define _JBTYPE long long
42#else
43#define _JBLEN 20
44#endif /* __SH5__ */
45#endif
46
47#ifdef _JBLEN
48#ifdef _JBTYPE
49typedef _JBTYPE jmp_buf[_JBLEN];
50#else
51typedef int jmp_buf[_JBLEN];
52#endif
53#endif
54
55
56extern void longjmp(jmp_buf __jmpb, int __retval);
57extern int setjmp(jmp_buf __jmpb);
58
59#endif // _SETJMP_H_