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