1 /* Copyright (C) 1999-2020 Free Software Foundation, Inc. 2 Contributed by Andrew MacLeod <amacleod@cygnus.com> 3 Andrew Haley <aph@cygnus.com> 4 5 This file is part of GCC. 6 7 GCC is free software; you can redistribute it and/or modify it under 8 the terms of the GNU General Public License as published by the Free 9 Software Foundation; either version 3, or (at your option) any later 10 version. 11 12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13 WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15 for more details. 16 17 Under Section 7 of GPL version 3, you are granted additional 18 permissions described in the GCC Runtime Library Exception, version 19 3.1, as published by the Free Software Foundation. 20 21 You should have received a copy of the GNU General Public License and 22 a copy of the GCC Runtime Library Exception along with this program; 23 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 24 <http://www.gnu.org/licenses/>. */ 25 26 #ifdef __VMS__ 27 /* On VMS, long is a 32 bit type. */ 28 typedef unsigned long long unw_word; 29 typedef long long unw_sword; 30 #else 31 typedef unsigned long unw_word; 32 typedef long unw_sword; 33 #endif 34 35 struct unw_table_entry 36 { 37 unw_word start_offset; 38 unw_word end_offset; 39 unw_word info_offset; 40 }; 41 42 /* Accessors to fields of an unwind info block header. In this common file to 43 be visible from all the units involved in a target implementation. */ 44 45 #ifndef __USING_SJLJ_EXCEPTIONS__ 46 #define UNW_VER(x) ((x) >> 48) 47 #define UNW_FLAG_MASK 0x0000ffff00000000 48 #define UNW_FLAG_OSMASK 0x0000f00000000000 49 #define UNW_FLAG_EHANDLER(x) ((x) & 0x0000000100000000L) 50 #define UNW_FLAG_UHANDLER(x) ((x) & 0x0000000200000000L) 51 #define UNW_LENGTH(x) ((x) & 0x00000000ffffffffL) 52 #endif 53 54 extern struct unw_table_entry * 55 _Unwind_FindTableEntry (void *pc, unw_word *segment_base, 56 unw_word *gp, struct unw_table_entry *ent) 57 __attribute__ ((__visibility__ ("hidden"))); 58