13eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm/* libunwind - a platform-independent unwind library 23eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm Copyright (C) 2002, 2004 Hewlett-Packard Co 3e6b9f350f78ecd9ef3b8a3e721f9435c94fc2562David Mosberger-Tang Copyright (C) 2007 David Mosberger-Tang 4e6b9f350f78ecd9ef3b8a3e721f9435c94fc2562David Mosberger-Tang Contributed by David Mosberger-Tang <dmosberger@gmail.com> 53eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 63eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmThis file is part of libunwind. 73eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 83eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmPermission is hereby granted, free of charge, to any person obtaining 93eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidma copy of this software and associated documentation files (the 103eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm"Software"), to deal in the Software without restriction, including 113eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmwithout limitation the rights to use, copy, modify, merge, publish, 123eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmdistribute, sublicense, and/or sell copies of the Software, and to 133eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmpermit persons to whom the Software is furnished to do so, subject to 143eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmthe following conditions: 153eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 163eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmThe above copyright notice and this permission notice shall be 173eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmincluded in all copies or substantial portions of the Software. 183eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 193eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 203eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 213eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 223eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 233eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 243eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 253eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ 263eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 273eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm#include <stdlib.h> 283eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm#include <string.h> 293eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 303eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm#include "unwind_i.h" 313eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 323eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm#ifdef UNW_REMOTE_ONLY 333eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 343eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm/* unw_local_addr_space is a NULL pointer in this case. */ 353eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmPROTECTED unw_addr_space_t unw_local_addr_space; 363eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 373eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm#else /* !UNW_REMOTE_ONLY */ 383eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 393eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmstatic struct unw_addr_space local_addr_space; 403eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 413eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmPROTECTED unw_addr_space_t unw_local_addr_space = &local_addr_space; 423eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 433eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmstatic inline void * 443eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmuc_addr (ucontext_t *uc, int reg) 453eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm{ 463eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm void *addr; 473eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 4868edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm if ((unsigned) (reg - UNW_HPPA_GR) < 32) 4968edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm addr = &uc->uc_mcontext.sc_gr[reg - UNW_HPPA_GR]; 5068edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm else if ((unsigned) (reg - UNW_HPPA_FR) < 32) 5168edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm addr = &uc->uc_mcontext.sc_fr[reg - UNW_HPPA_FR]; 5268edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm else 5368edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm addr = NULL; 543eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm return addr; 553eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm} 563eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 573eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm# ifdef UNW_LOCAL_ONLY 583eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 593eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmvoid * 6068edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm_Uhppa_uc_addr (ucontext_t *uc, int reg) 613eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm{ 623eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm return uc_addr (uc, reg); 633eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm} 643eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 653eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm# endif /* UNW_LOCAL_ONLY */ 663eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 673eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmHIDDEN unw_dyn_info_list_t _U_dyn_info_list; 683eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 693eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm/* XXX fix me: there is currently no way to locate the dyn-info list 703eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm by a remote unwinder. On ia64, this is done via a special 713eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm unwind-table entry. Perhaps something similar can be done with 723eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm DWARF2 unwind info. */ 733eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 743eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmstatic void 753eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmput_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) 763eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm{ 773eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm /* it's a no-op */ 783eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm} 793eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 803eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmstatic int 813eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmget_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, 823eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm void *arg) 833eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm{ 843eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; 853eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm return 0; 863eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm} 873eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 883eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmstatic int 893eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmaccess_mem (unw_addr_space_t as, unw_word_t addr, unw_word_t *val, int write, 903eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm void *arg) 913eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm{ 923eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm if (write) 933eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm { 947d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris /* ANDROID support update. */ 95cdf9ee587b78148c5d48dae1b5ea72ec8df64c96Christopher Ferris#ifdef UNW_LOCAL_ONLY 96f4a8df5f4f338f1a12c25213227e98b34b42447fChristopher Ferris if (map_local_is_writable (addr)) 977d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris { 98cdf9ee587b78148c5d48dae1b5ea72ec8df64c96Christopher Ferris#endif 997d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris Debug (12, "mem[%x] <- %x\n", addr, *val); 1007d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris *(unw_word_t *) addr = *val; 101cdf9ee587b78148c5d48dae1b5ea72ec8df64c96Christopher Ferris#ifdef UNW_LOCAL_ONLY 1027d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris } 1037d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris else 1047d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris { 1057d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris Debug (12, "Unwritable memory mem[%x] <- %x\n", addr, *val); 1067d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris return -1; 1077d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris } 108cdf9ee587b78148c5d48dae1b5ea72ec8df64c96Christopher Ferris#endif 1097d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris /* End of ANDROID update. */ 1103eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm } 1113eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm else 1123eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm { 1137d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris /* ANDROID support update. */ 114cdf9ee587b78148c5d48dae1b5ea72ec8df64c96Christopher Ferris#ifdef UNW_LOCAL_ONLY 115f4a8df5f4f338f1a12c25213227e98b34b42447fChristopher Ferris if (map_local_is_readable (addr)) 1167d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris { 117cdf9ee587b78148c5d48dae1b5ea72ec8df64c96Christopher Ferris#endif 1187d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris *val = *(unw_word_t *) addr; 1197d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris Debug (12, "mem[%x] -> %x\n", addr, *val); 120cdf9ee587b78148c5d48dae1b5ea72ec8df64c96Christopher Ferris#ifdef UNW_LOCAL_ONLY 1217d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris } 1227d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris else 1237d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris { 1247d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris Debug (12, "Unreadable memory mem[%x] -> XXX\n", addr); 1257d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris return -1; 1267d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris } 127cdf9ee587b78148c5d48dae1b5ea72ec8df64c96Christopher Ferris#endif 1287d46a21e0a2cb561e4cad57b101a7137e01023dcChristopher Ferris /* End of ANDROID update. */ 1293eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm } 1303eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm return 0; 1313eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm} 1323eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 1333eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmstatic int 1343eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmaccess_reg (unw_addr_space_t as, unw_regnum_t reg, unw_word_t *val, int write, 1353eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm void *arg) 1363eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm{ 1373eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm unw_word_t *addr; 1383eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm ucontext_t *uc = arg; 1393eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 14068edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm if ((unsigned int) (reg - UNW_HPPA_FR) < 32) 1413eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm goto badreg; 1423eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 1433eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm addr = uc_addr (uc, reg); 1443eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm if (!addr) 1453eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm goto badreg; 1463eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 1473eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm if (write) 1483eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm { 1493eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm *(unw_word_t *) addr = *val; 15068edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm Debug (12, "%s <- %x\n", unw_regname (reg), *val); 1513eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm } 1523eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm else 1533eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm { 1543eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm *val = *(unw_word_t *) addr; 15568edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm Debug (12, "%s -> %x\n", unw_regname (reg), *val); 1563eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm } 1573eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm return 0; 1583eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 1593eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm badreg: 1603eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm Debug (1, "bad register number %u\n", reg); 1613eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm return -UNW_EBADREG; 1623eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm} 1633eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 1643eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmstatic int 1653eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmaccess_fpreg (unw_addr_space_t as, unw_regnum_t reg, unw_fpreg_t *val, 1663eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm int write, void *arg) 1673eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm{ 1683eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm ucontext_t *uc = arg; 1693eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm unw_fpreg_t *addr; 1703eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 17168edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm if ((unsigned) (reg - UNW_HPPA_FR) > 32) 1723eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm goto badreg; 1733eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 1743eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm addr = uc_addr (uc, reg); 1753eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm if (!addr) 1763eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm goto badreg; 1773eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 1783eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm if (write) 1793eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm { 18068edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm Debug (12, "%s <- %08x.%08x\n", 1813eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm unw_regname (reg), val->raw.bits[1], val->raw.bits[0]); 1823eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm *(unw_fpreg_t *) addr = *val; 1833eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm } 1843eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm else 1853eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm { 1863eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm *val = *(unw_fpreg_t *) addr; 18768edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm Debug (12, "%s -> %08x.%08x\n", 1883eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm unw_regname (reg), val->raw.bits[1], val->raw.bits[0]); 1893eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm } 1903eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm return 0; 1913eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 1923eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm badreg: 1933eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm Debug (1, "bad register number %u\n", reg); 1943eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm /* attempt to access a non-preserved register */ 1953eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm return -UNW_EBADREG; 19668edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm} 19768edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm 19868edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidmstatic int 19968edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidmget_static_proc_name (unw_addr_space_t as, unw_word_t ip, 20068edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm char *buf, size_t buf_len, unw_word_t *offp, 20168edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm void *arg) 20268edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm{ 203e6b9f350f78ecd9ef3b8a3e721f9435c94fc2562David Mosberger-Tang return _Uelf32_get_proc_name (as, getpid (), ip, buf, buf_len, offp); 2043eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm} 2053eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 2063eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidmHIDDEN void 20768edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidmhppa_local_addr_space_init (void) 2083eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm{ 2093eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm memset (&local_addr_space, 0, sizeof (local_addr_space)); 2103eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm local_addr_space.caching_policy = UNW_CACHE_GLOBAL; 21168edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm local_addr_space.acc.find_proc_info = dwarf_find_proc_info; 2123eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm local_addr_space.acc.put_unwind_info = put_unwind_info; 2133eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm local_addr_space.acc.get_dyn_info_list_addr = get_dyn_info_list_addr; 2143eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm local_addr_space.acc.access_mem = access_mem; 2153eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm local_addr_space.acc.access_reg = access_reg; 2163eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm local_addr_space.acc.access_fpreg = access_fpreg; 21768edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm local_addr_space.acc.resume = hppa_local_resume; 21868edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm local_addr_space.acc.get_proc_name = get_static_proc_name; 21968edb681d88e33715e3337027c9b416d9dee4a61hp.com!davidm unw_flush_cache (&local_addr_space, 0, 0); 220f4a8df5f4f338f1a12c25213227e98b34b42447fChristopher Ferris 221f4a8df5f4f338f1a12c25213227e98b34b42447fChristopher Ferris map_local_init (); 2223eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm} 2233eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm 2243eb5704c20acb444c4c15c754b8cecc41835dc55homeip.net!davidm#endif /* !UNW_REMOTE_ONLY */ 225