Mercurial > projects > ldc
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 } |