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