1{
2    This file is part of the Free Pascal run time library.
3    Copyright (c) 2000-2002 by Jonas Maebe and other members of the
4    Free Pascal development team
5
6    SetJmp/Longjmp declarations
7
8    See the file COPYING.FPC, included in this distribution,
9    for details about the copyright.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14
15 **********************************************************************}
16
17type
18   jmp_buf = packed record
19     rbx,rbp,r12,r13,r14,r15,rsp,rip : qword;
20{$ifdef win64}
21     rsi,rdi : qword;
22     xmm6,xmm7,xmm8,xmm9,xmm10,xmm11,xmm12,xmm13,xmm14,xmm15: record m1,m2: qword; end;
23     mxcsr: longword;
24     fpucw: word;
25     padding: word;
26{$endif win64}
27   end;
28   pjmp_buf = ^jmp_buf;
29
30function setjmp(var S : jmp_buf) : longint;[external name 'FPC_SETJMP'];
31procedure longjmp(var S : jmp_buf;value : longint);[external name 'FPC_LONGJMP'];
32
33