1 /* 2 * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> 3 * 4 * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. 5 */ 6 7 #include <setjmp.h> 8 9 /* Test if longjmp to JMPBUF would unwind the frame 10 containing a local variable at ADDRESS. */ 11 #define _JMPBUF_UNWINDS(jmpbuf, address) \ 12 ((void *) (address) < (void *) (jmpbuf)[0].__regs[7]) 13 14 #ifdef __UCLIBC_HAS_THREADS_NATIVE__ 15 #include <stdint.h> 16 #include <unwind.h> 17 18 #define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \ 19 _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj) 20 21 #define _JMPBUF_UNWINDS_ADJ(jmpbuf, address, adj) \ 22 ((uintptr_t) (address) - (adj) < (uintptr_t) (jmpbuf)[0].__regs[7] - (adj)) 23 #endif 24