1 /* Dynamic loading of the libgcc unwinder. Arm customization. 2 Copyright (C) 2021 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; if not, see 17 <https://www.gnu.org/licenses/>. */ 18 19 #ifndef _ARCH_UNWIND_LINK_H 20 #define _ARCH_UNWIND_LINK_H 21 22 /* On arm, _Unwind_GetIP is a macro. */ 23 #define UNWIND_LINK_GETIP 0 24 25 #define UNWIND_LINK_FRAME_STATE_FOR 0 26 #define UNWIND_LINK_FRAME_ADJUSTMENT 0 27 #define UNWIND_LINK_EXTRA_FIELDS \ 28 __typeof (_Unwind_VRS_Get) *ptr__Unwind_VRS_Get; 29 #define UNWIND_LINK_EXTRA_INIT \ 30 local.ptr__Unwind_VRS_Get \ 31 = __libc_dlsym (local_libgcc_handle, "_Unwind_VRS_Get"); \ 32 assert (local.ptr__Unwind_VRS_Get != NULL); \ 33 PTR_MANGLE (local.ptr__Unwind_VRS_Get); 34 35 /* This is used by the _Unwind_Resume assembler implementation to 36 obtain the address to jump to. */ 37 void *__unwind_link_get_resume (void) attribute_hidden; 38 39 #endif /* _ARCH_UNWIND_LINK_H */ 40