17fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm/* libunwind - a platform-independent unwind library 247c32cd07f10fb2c40e7639aa68f0fee1998790cmostang.com!davidm Copyright (C) 2001-2004 Hewlett-Packard Co 37fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm Contributed by David Mosberger-Tang <davidm@hpl.hp.com> 47fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm 57fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidmThis file is part of libunwind. 67fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm 7aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmPermission is hereby granted, free of charge, to any person obtaining 8aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidma copy of this software and associated documentation files (the 9aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidm"Software"), to deal in the Software without restriction, including 10aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmwithout limitation the rights to use, copy, modify, merge, publish, 11aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmdistribute, sublicense, and/or sell copies of the Software, and to 12aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmpermit persons to whom the Software is furnished to do so, subject to 13aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmthe following conditions: 14aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidm 15aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmThe above copyright notice and this permission notice shall be 16aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmincluded in all copies or substantial portions of the Software. 17aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidm 18aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 22aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 24aca3843d6f53f2b36cb66c167a10e3e30e8ebd3amostang.com!davidmWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ 257fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm 261f3b87ad500cb34e4a4a4ac298267cb73ad47c1ehp.com!davidm#ifndef LIBUNWIND_H 271f3b87ad500cb34e4a4a4ac298267cb73ad47c1ehp.com!davidm#define LIBUNWIND_H 281f3b87ad500cb34e4a4a4ac298267cb73ad47c1ehp.com!davidm 2947c70d7858d94b18e0828fa1b23e15d0c13ef0damostang.com!davidm#include <inttypes.h> 307fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm#include <ucontext.h> 317fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm 32337c0ad98914f06256358ad887f53062cdedd141mostang.com!davidm#if defined(__cplusplus) || defined(c_plusplus) 33337c0ad98914f06256358ad887f53062cdedd141mostang.com!davidmextern "C" { 34337c0ad98914f06256358ad887f53062cdedd141mostang.com!davidm#endif 35337c0ad98914f06256358ad887f53062cdedd141mostang.com!davidm 3643652d9deaa65d1fa1aca67ea3ac3a6f6d852086hp.com!davidm#ifdef ia64 3743652d9deaa65d1fa1aca67ea3ac3a6f6d852086hp.com!davidm /* This works around a bug in Intel's ECC v7.0 which defines "ia64" 3843652d9deaa65d1fa1aca67ea3ac3a6f6d852086hp.com!davidm as "1". */ 3943652d9deaa65d1fa1aca67ea3ac3a6f6d852086hp.com!davidm# undef ia64 4043652d9deaa65d1fa1aca67ea3ac3a6f6d852086hp.com!davidm#endif 4143652d9deaa65d1fa1aca67ea3ac3a6f6d852086hp.com!davidm 4289c081cd846d49f6f9d467f94eac9c64b6fabecamostang.com!davidm#ifdef __hpux 4389c081cd846d49f6f9d467f94eac9c64b6fabecamostang.com!davidm /* On HP-UX, there is no hope of supporting UNW_LOCAL_ONLY, because 4489c081cd846d49f6f9d467f94eac9c64b6fabecamostang.com!davidm it's impossible to obtain the address of the members in the 4589c081cd846d49f6f9d467f94eac9c64b6fabecamostang.com!davidm sigcontext structure. */ 4689c081cd846d49f6f9d467f94eac9c64b6fabecamostang.com!davidm# undef UNW_LOCAL_ONLY 4789c081cd846d49f6f9d467f94eac9c64b6fabecamostang.com!davidm# define UNW_GENERIC_ONLY 4889c081cd846d49f6f9d467f94eac9c64b6fabecamostang.com!davidm#endif 4989c081cd846d49f6f9d467f94eac9c64b6fabecamostang.com!davidm 501f3b87ad500cb34e4a4a4ac298267cb73ad47c1ehp.com!davidm#define UNW_TARGET ia64 5193daa3b08df88abd959e2318b2abff094413e9d5mostang.com!davidm#define UNW_TARGET_IA64 1 521f3b87ad500cb34e4a4a4ac298267cb73ad47c1ehp.com!davidm 539df94711bf2f5d3ed6664edd97bdb504399b1ca0mostang.com!davidm#define _U_TDEP_QP_TRUE 0 /* see libunwind-dynamic.h */ 549df94711bf2f5d3ed6664edd97bdb504399b1ca0mostang.com!davidm 55b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm/* This needs to be big enough to accommodate "struct cursor", while 56b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm leaving some slack for future expansion. Changing this value will 57b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm require recompiling all users of this library. Stack allocation is 58b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm relatively cheap and unwind-state copying is relatively rare, so we 59b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm want to err on making it rather too big than too small. */ 60b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm#define UNW_TDEP_CURSOR_LEN 511 61b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm 62b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm/* If this bit is it indicates that the procedure saved all of ar.bsp, 63b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm ar.bspstore, and ar.rnat. If, additionally, ar.bsp != saved ar.bsp, 64b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm then this procedure has performed a register-backing-store switch. */ 65b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm#define UNW_PI_FLAG_IA64_RBS_SWITCH_BIT (UNW_PI_FLAG_FIRST_TDEP_BIT + 0) 66b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm 67b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm#define UNW_PI_FLAG_IA64_RBS_SWITCH (1 << UNW_PI_FLAG_IA64_RBS_SWITCH_BIT) 68b5fe317cc85781d11fba59e2a13dd59d5c73e95emostang.com!davidm 6977b06d67aa7fba8fdd6935f8dd79035b54bc10a4hp.com!davidmtypedef uint64_t unw_word_t; 7011ea1275bd188ea48f5d834ca504f8d84d751983Arun Sharmatypedef int64_t unw_sword_t; 71cd66944a2c0f6e897e28af64e778973c60dd329d(none)!davidm 728c2740cfe324131373afa75fec4abb3fd9d44e24mostang.com!davidm/* On IA-64, we want to access the contents of floating-point 738c2740cfe324131373afa75fec4abb3fd9d44e24mostang.com!davidm registers as a pair of "words", but to ensure 16-byte alignment, we 748c2740cfe324131373afa75fec4abb3fd9d44e24mostang.com!davidm make it a union that contains a "long double". This will do the 758c2740cfe324131373afa75fec4abb3fd9d44e24mostang.com!davidm Right Thing on all known IA-64 platforms, including HP-UX. */ 768c2740cfe324131373afa75fec4abb3fd9d44e24mostang.com!davidmtypedef union 778c2740cfe324131373afa75fec4abb3fd9d44e24mostang.com!davidm { 7877b06d67aa7fba8fdd6935f8dd79035b54bc10a4hp.com!davidm struct { unw_word_t bits[2]; } raw; 798c2740cfe324131373afa75fec4abb3fd9d44e24mostang.com!davidm long double dummy; /* dummy to force 16-byte alignment */ 808c2740cfe324131373afa75fec4abb3fd9d44e24mostang.com!davidm } 818c2740cfe324131373afa75fec4abb3fd9d44e24mostang.com!davidmunw_tdep_fpreg_t; 828c2740cfe324131373afa75fec4abb3fd9d44e24mostang.com!davidm 8377b06d67aa7fba8fdd6935f8dd79035b54bc10a4hp.com!davidmtypedef struct 8477b06d67aa7fba8fdd6935f8dd79035b54bc10a4hp.com!davidm { 8577b06d67aa7fba8fdd6935f8dd79035b54bc10a4hp.com!davidm /* no ia64-specific auxiliary proc-info */ 8677b06d67aa7fba8fdd6935f8dd79035b54bc10a4hp.com!davidm } 8777b06d67aa7fba8fdd6935f8dd79035b54bc10a4hp.com!davidmunw_tdep_proc_info_t; 8877b06d67aa7fba8fdd6935f8dd79035b54bc10a4hp.com!davidm 897fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidmtypedef enum 907fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm { 917fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm /* Note: general registers are excepted to start with index 0. 927fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm This convention facilitates architecture-independent 937fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm implementation of the C++ exception handling ABI. See 947fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm _Unwind_SetGR() and _Unwind_GetGR() for details. */ 957fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_GR = 0, /* general registers (r0..r127) */ 967fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_GP = UNW_IA64_GR + 1, 977fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_TP = UNW_IA64_GR + 13, 987fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm 997fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_NAT = UNW_IA64_GR + 128, /* NaT registers (nat0..nat127) */ 1007fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm 1017fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_FR = UNW_IA64_NAT + 128, /* fp registers (f0..f127) */ 1027fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm 1037fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_AR = UNW_IA64_FR + 128, /* application registers (ar0..r127) */ 1047fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_AR_RSC = UNW_IA64_AR + 16, 1057fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_AR_BSP = UNW_IA64_AR + 17, 1067fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_AR_BSPSTORE = UNW_IA64_AR + 18, 1077fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_AR_RNAT = UNW_IA64_AR + 19, 108644c9193453c17afe4187ad5a0310b1d7481eeafhp.com!davidm UNW_IA64_AR_CSD = UNW_IA64_AR + 25, 109644c9193453c17afe4187ad5a0310b1d7481eeafhp.com!davidm UNW_IA64_AR_26 = UNW_IA64_AR + 26, 11018626b8def9998164faf369edfdc03865785ffe7hp.com!davidm UNW_IA64_AR_SSD = UNW_IA64_AR_26, 1117fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_AR_CCV = UNW_IA64_AR + 32, 1127fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_AR_UNAT = UNW_IA64_AR + 36, 1137fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_AR_FPSR = UNW_IA64_AR + 40, 1147fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_AR_PFS = UNW_IA64_AR + 64, 1157fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_AR_LC = UNW_IA64_AR + 65, 1167fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_AR_EC = UNW_IA64_AR + 66, 1177fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm 1187fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_BR = UNW_IA64_AR + 128, /* branch registers (b0..p7) */ 1199df94711bf2f5d3ed6664edd97bdb504399b1ca0mostang.com!davidm UNW_IA64_RP = UNW_IA64_BR + 0, /* return pointer (rp) */ 1207fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_PR = UNW_IA64_BR + 8, /* predicate registers (p0..p63) */ 1217fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm UNW_IA64_CFM, 1227fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm 123b47b9aa232a2b127a4fa8abe68c5272adf3e4cf5hp.com!davidm /* frame info: */ 12499639fb162e8ed476b1d572d18404791a406e3ecmostang.com!davidm UNW_IA64_BSP, 125cd66944a2c0f6e897e28af64e778973c60dd329d(none)!davidm UNW_IA64_IP, 126cd66944a2c0f6e897e28af64e778973c60dd329d(none)!davidm UNW_IA64_SP, 127cd66944a2c0f6e897e28af64e778973c60dd329d(none)!davidm 128b1c1f146cc00b2fb3ae7791a52eb1043689f897fmostang.com!davidm UNW_TDEP_LAST_REG = UNW_IA64_SP, 129cd66944a2c0f6e897e28af64e778973c60dd329d(none)!davidm 130cd66944a2c0f6e897e28af64e778973c60dd329d(none)!davidm UNW_TDEP_IP = UNW_IA64_IP, 1318c2740cfe324131373afa75fec4abb3fd9d44e24mostang.com!davidm UNW_TDEP_SP = UNW_IA64_SP, 132a6e367131b3d0cff995f7bc6decb9d08433d8cbdmostang.com!davidm UNW_TDEP_EH = UNW_IA64_GR + 15 1337fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm } 1347fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidmia64_regnum_t; 1357fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm 136a6e367131b3d0cff995f7bc6decb9d08433d8cbdmostang.com!davidm#define UNW_TDEP_NUM_EH_REGS 4 /* r15-r18 are exception args */ 137a6e367131b3d0cff995f7bc6decb9d08433d8cbdmostang.com!davidm 138f1d10c0fb34f593a0c546c40fc1a740cdb1cae46hp.com!davidmtypedef struct unw_tdep_save_loc 139f1d10c0fb34f593a0c546c40fc1a740cdb1cae46hp.com!davidm { 140f1d10c0fb34f593a0c546c40fc1a740cdb1cae46hp.com!davidm /* Additional target-dependent info on a save location. On IA-64, 1411c00cf562e8c328dad84fbfe24c11f431951bafdmostang.com!davidm we use this to provide the bit number in which a NaT bit gets 1421c00cf562e8c328dad84fbfe24c11f431951bafdmostang.com!davidm saved. */ 1431c00cf562e8c328dad84fbfe24c11f431951bafdmostang.com!davidm uint8_t nat_bitnr; 1441c00cf562e8c328dad84fbfe24c11f431951bafdmostang.com!davidm 1451c00cf562e8c328dad84fbfe24c11f431951bafdmostang.com!davidm /* Padding reserved for future use. */ 1461c00cf562e8c328dad84fbfe24c11f431951bafdmostang.com!davidm uint8_t reserved[7]; 147f1d10c0fb34f593a0c546c40fc1a740cdb1cae46hp.com!davidm } 148f1d10c0fb34f593a0c546c40fc1a740cdb1cae46hp.com!davidmunw_tdep_save_loc_t; 149f1d10c0fb34f593a0c546c40fc1a740cdb1cae46hp.com!davidm 1507fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm/* On IA-64, we can directly use ucontext_t as the unwind context. */ 1517fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidmtypedef ucontext_t unw_tdep_context_t; 1527fbfe0a255eb7ff3f27efa5adc6ed69dab471ecfmostang.com!davidm 1535c6360b856e53436acf1833d8e192dbf69843a6dmostang.com!davidm#define unw_tdep_is_fpreg(r) ((unsigned) ((r) - UNW_IA64_FR) < 128) 1541f3b87ad500cb34e4a4a4ac298267cb73ad47c1ehp.com!davidm 15577b06d67aa7fba8fdd6935f8dd79035b54bc10a4hp.com!davidm#include "libunwind-dynamic.h" 1561f3b87ad500cb34e4a4a4ac298267cb73ad47c1ehp.com!davidm#include "libunwind-common.h" 1571f3b87ad500cb34e4a4a4ac298267cb73ad47c1ehp.com!davidm 158ad6f2319b966f0464c0651e9a5d459570d500988mostang.com!davidm#ifdef __hpux 159ad6f2319b966f0464c0651e9a5d459570d500988mostang.com!davidm /* In theory, we could use _Uia64_getcontext() on HP-UX as well, but 160ad6f2319b966f0464c0651e9a5d459570d500988mostang.com!davidm the benefit of doing so would be marginal given that it can't 161ad6f2319b966f0464c0651e9a5d459570d500988mostang.com!davidm support UNW_LOCAL_ONLY. */ 162ad6f2319b966f0464c0651e9a5d459570d500988mostang.com!davidm# define unw_tdep_getcontext getcontext 163ad6f2319b966f0464c0651e9a5d459570d500988mostang.com!davidm#else 164ad6f2319b966f0464c0651e9a5d459570d500988mostang.com!davidm# define unw_tdep_getcontext UNW_ARCH_OBJ (getcontext) 165ad6f2319b966f0464c0651e9a5d459570d500988mostang.com!davidm extern int unw_tdep_getcontext (unw_tdep_context_t *); 166ad6f2319b966f0464c0651e9a5d459570d500988mostang.com!davidm#endif 167a1ce4c307e9a6cc98404eca9500c8cc10e812273mostang.com!davidm 168644c9193453c17afe4187ad5a0310b1d7481eeafhp.com!davidm/* This is a helper routine to search an ia64 unwind table. If the 169644c9193453c17afe4187ad5a0310b1d7481eeafhp.com!davidm address-space argument AS points to something other than the local 170644c9193453c17afe4187ad5a0310b1d7481eeafhp.com!davidm address-space, the memory for the unwind-info will be allocated 171644c9193453c17afe4187ad5a0310b1d7481eeafhp.com!davidm with malloc(), and should be free()d during the put_unwind_info() 172644c9193453c17afe4187ad5a0310b1d7481eeafhp.com!davidm callback. This routine is signal-safe for the local-address-space 173644c9193453c17afe4187ad5a0310b1d7481eeafhp.com!davidm case ONLY. */ 1747915b799c8f9034502dd40234f951d41ada84848mostang.com!davidm#define unw_search_ia64_unwind_table UNW_OBJ(search_unwind_table) 1757915b799c8f9034502dd40234f951d41ada84848mostang.com!davidmextern int unw_search_ia64_unwind_table (unw_addr_space_t, unw_word_t, 1767915b799c8f9034502dd40234f951d41ada84848mostang.com!davidm unw_dyn_info_t *, unw_proc_info_t *, 1777915b799c8f9034502dd40234f951d41ada84848mostang.com!davidm int, void *); 178644c9193453c17afe4187ad5a0310b1d7481eeafhp.com!davidm 1791c8ee38936b364114cd13660221fc4dfba94c274mostang.com!davidm/* This is a helper routine which the get_dyn_info_list_addr() 1801c8ee38936b364114cd13660221fc4dfba94c274mostang.com!davidm callback can use to locate the special dynamic-info list entry in 1811c8ee38936b364114cd13660221fc4dfba94c274mostang.com!davidm an IA-64 unwind table. If the entry exists in the table, the 1821c8ee38936b364114cd13660221fc4dfba94c274mostang.com!davidm list-address is returned. In all other cases, 0 is returned. */ 1837915b799c8f9034502dd40234f951d41ada84848mostang.com!davidmextern unw_word_t _Uia64_find_dyn_list (unw_addr_space_t, unw_dyn_info_t *, 1847915b799c8f9034502dd40234f951d41ada84848mostang.com!davidm void *); 185644c9193453c17afe4187ad5a0310b1d7481eeafhp.com!davidm 186644c9193453c17afe4187ad5a0310b1d7481eeafhp.com!davidm/* This is a helper routine to obtain the kernel-unwind info. It is 187644c9193453c17afe4187ad5a0310b1d7481eeafhp.com!davidm signal-safe. */ 1887915b799c8f9034502dd40234f951d41ada84848mostang.com!davidmextern int _Uia64_get_kernel_table (unw_dyn_info_t *); 1891c8ee38936b364114cd13660221fc4dfba94c274mostang.com!davidm 190337c0ad98914f06256358ad887f53062cdedd141mostang.com!davidm#if defined(__cplusplus) || defined(c_plusplus) 191337c0ad98914f06256358ad887f53062cdedd141mostang.com!davidm} 192337c0ad98914f06256358ad887f53062cdedd141mostang.com!davidm#endif 193337c0ad98914f06256358ad887f53062cdedd141mostang.com!davidm 1941f3b87ad500cb34e4a4a4ac298267cb73ad47c1ehp.com!davidm#endif /* LIBUNWIND_H */ 195