1ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm/* libunwind - a platform-independent unwind library 25724bee8c27219ac277ea76d75dc70fa830eaac0hp.com!davidm Copyright (C) 2001-2002, 2005 Hewlett-Packard Co 3ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm Contributed by David Mosberger-Tang <davidm@hpl.hp.com> 4ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm 5ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmThis file is part of libunwind. 6ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm 7ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmPermission is hereby granted, free of charge, to any person obtaining 8ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidma copy of this software and associated documentation files (the 9ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm"Software"), to deal in the Software without restriction, including 10ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmwithout limitation the rights to use, copy, modify, merge, publish, 11ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmdistribute, sublicense, and/or sell copies of the Software, and to 12ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmpermit persons to whom the Software is furnished to do so, subject to 13ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmthe following conditions: 14ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm 15ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmThe above copyright notice and this permission notice shall be 16ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmincluded in all copies or substantial portions of the Software. 17ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm 18ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 22ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 24ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ 25ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm 265724bee8c27219ac277ea76d75dc70fa830eaac0hp.com!davidm#include "libunwind_i.h" 27ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm 28ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmHIDDEN void 29ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidmunwi_put_dynamic_unwind_info (unw_addr_space_t as, unw_proc_info_t *pi, 30ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm void *arg) 31ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm{ 32ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm switch (pi->format) 33ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm { 34ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm case UNW_INFO_FORMAT_DYNAMIC: 35ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm#ifndef UNW_LOCAL_ONLY 36ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm# ifdef UNW_REMOTE_ONLY 37ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm unwi_dyn_remote_put_unwind_info (as, pi, arg); 38ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm# else 39ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm if (as != unw_local_addr_space) 40ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm unwi_dyn_remote_put_unwind_info (as, pi, arg); 41ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm# endif 42ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm#endif 43ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm break; 44ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm 45ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm case UNW_INFO_FORMAT_TABLE: 46ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm case UNW_INFO_FORMAT_REMOTE_TABLE: 47ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm#ifdef tdep_put_unwind_info 48ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm tdep_put_unwind_info (as, pi, arg); 49ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm break; 50ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm#endif 51ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm /* fall through */ 52ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm default: 53ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm break; 54ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm } 55ca00cf27cf87febef38e1dc5c98f94e335140c54hp.com!davidm} 56