1b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino/* libunwind - a platform-independent unwind library 2b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino Copyright (C) 2006-2007 IBM 3b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino Contributed by 4b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino Corey Ashford <cjashfor@us.ibm.com> 5b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino Jose Flavio Aguilar Paulino <jflavio@br.ibm.com> <joseflavio@gmail.com> 6b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino 7b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar PaulinoThis file is part of libunwind. 8b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino 9b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar PaulinoPermission is hereby granted, free of charge, to any person obtaining 10b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulinoa copy of this software and associated documentation files (the 11b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino"Software"), to deal in the Software without restriction, including 12b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulinowithout limitation the rights to use, copy, modify, merge, publish, 13b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulinodistribute, sublicense, and/or sell copies of the Software, and to 14b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulinopermit persons to whom the Software is furnished to do so, subject to 15b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulinothe following conditions: 16b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino 17b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar PaulinoThe above copyright notice and this permission notice shall be 18b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulinoincluded in all copies or substantial portions of the Software. 19b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino 20b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar PaulinoTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar PaulinoEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 22b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar PaulinoMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar PaulinoNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 24b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar PaulinoLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 25b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar PaulinoOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 26b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar PaulinoWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ 27b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino 284499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino#include <libunwind_i.h> 294499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino 304499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino#ifdef UNW_TARGET_PPC64 314499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino#include "../ppc64/init.h" 324499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino#else 334499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino#include "../ppc32/init.h" 344499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino#endif 35b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino 36b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar PaulinoPROTECTED int 37b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulinounw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg) 38b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino{ 39b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino#ifdef UNW_LOCAL_ONLY 40b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino return -UNW_EINVAL; 41b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino#else /* !UNW_LOCAL_ONLY */ 42b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino struct cursor *c = (struct cursor *) cursor; 43b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino 445d0f376b08126b51a001d7cdfba1ec4e0d644f54Tommi Rantala if (!tdep_init_done) 45b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino tdep_init (); 46b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino 47b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino Debug (1, "(cursor=%p)\n", c); 48b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino 49b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino c->dwarf.as = as; 50b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino c->dwarf.as_arg = as_arg; 514499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino 524499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino #ifdef UNW_TARGET_PPC64 53a9dce3c06e6ffcb83957e734d960505415118f00Lassi Tuura return common_init_ppc64 (c, 0); 544499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino #elif UNW_TARGET_PPC32 55a9dce3c06e6ffcb83957e734d960505415118f00Lassi Tuura return common_init_ppc32 (c, 0); 564499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino #else 574499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino #error init_remote :: NO VALID PPC ARCH! 584499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino #endif 59b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino#endif /* !UNW_LOCAL_ONLY */ 60b33021e4b2f3a92141c01eb24b98bc51a97c498dJose Flavio Aguilar Paulino} 61