comparison tango/tango/stdc/posix/setjmp.d @ 132:1700239cab2e trunk

[svn r136] MAJOR UNSTABLE UPDATE!!! Initial commit after moving to Tango instead of Phobos. Lots of bugfixes... This build is not suitable for most things.
author lindquist
date Fri, 11 Jan 2008 17:57:40 +0100
parents
children
comparison
equal deleted inserted replaced
131:5825d48b27d1 132:1700239cab2e
1 /**
2 * D header file for POSIX.
3 *
4 * Copyright: Public Domain
5 * License: Public Domain
6 * Authors: Sean Kelly
7 * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
8 */
9 module tango.stdc.posix.setjmp;
10
11 private import tango.stdc.posix.config;
12 private import tango.stdc.posix.signal; // for sigset_t
13
14 extern (C):
15
16 //
17 // Required
18 //
19 /*
20 jmp_buf
21
22 int setjmp(jmp_buf);
23 void longjmp(jmp_buf, int);
24 */
25
26 version( linux )
27 {
28 version( X86_64 )
29 {
30 //const JB_BX = 0;
31 //const JB_BP = 1;
32 //const JB_12 = 2;
33 //const JB_13 = 3;
34 //const JB_14 = 4;
35 //const JB_15 = 5;
36 //const JB_SP = 6;
37 //const JB_PC = 7;
38 //const JB_SIZE = 64;
39
40 alias long[8] __jmp_buf;
41 }
42 else version( X86 )
43 {
44 //const JB_BX = 0;
45 //const JB_SI = 1;
46 //const JB_DI = 2;
47 //const JB_BP = 3;
48 //const JB_SP = 4;
49 //const JB_PC = 5;
50 //const JB_SIZE = 24;
51
52 alias int[6] __jmp_buf;
53 }
54
55 struct __jmp_buf_tag
56 {
57 __jmp_buf __jmpbuf;
58 int __mask_was_saved;
59 sigset_t __saved_mask;
60 }
61
62 alias __jmp_buf_tag[1] jmp_buf;
63
64 alias _setjmp setjmp; // see XOpen block
65 void longjmp(jmp_buf, int);
66 }
67
68 //
69 // C Extension (CX)
70 //
71 /*
72 sigjmp_buf
73
74 int sigsetjmp(sigjmp_buf, int);
75 void siglongjmp(sigjmp_buf, int);
76 */
77
78 version( linux )
79 {
80 alias jmp_buf sigjmp_buf;
81
82 int __sigsetjmp(sigjmp_buf, int);
83 alias __sigsetjmp sigsetjmp;
84 void siglongjmp(sigjmp_buf, int);
85 }
86
87 //
88 // XOpen (XSI)
89 //
90 /*
91 int _setjmp(jmp_buf);
92 void _longjmp(jmp_buf, int);
93 */
94
95 version( linux )
96 {
97 int _setjmp(jmp_buf);
98 void _longjmp(jmp_buf, int);
99 }