19f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm/* libunwind - a platform-independent unwind library
29f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm   Copyright (c) 2003 Hewlett-Packard Development Company, L.P.
39f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm	Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
49f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm
59f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmThis file is part of libunwind.
69f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm
79f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmPermission is hereby granted, free of charge, to any person obtaining
89f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidma copy of this software and associated documentation files (the
99f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm"Software"), to deal in the Software without restriction, including
109f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmwithout limitation the rights to use, copy, modify, merge, publish,
119f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmdistribute, sublicense, and/or sell copies of the Software, and to
129f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmpermit persons to whom the Software is furnished to do so, subject to
139f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmthe following conditions:
149f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm
159f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmThe above copyright notice and this permission notice shall be
169f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmincluded in all copies or substantial portions of the Software.
179f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm
189f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
199f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
209f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
219f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
229f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
239f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
249f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
259f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm
269f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm#include "init.h"
279f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm#include "unwind_i.h"
289f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm
299f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmPROTECTED int
309f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidmunw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
319f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm{
329f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm#ifdef UNW_LOCAL_ONLY
339f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm  return -UNW_EINVAL;
349f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm#else /* !UNW_LOCAL_ONLY */
359f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm  struct cursor *c = (struct cursor *) cursor;
369f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm
375d0f376b08126b51a001d7cdfba1ec4e0d644f54Tommi Rantala  if (!tdep_init_done)
389f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm    tdep_init ();
399f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm
40f576cce7480d6acee537cecfeb5530187e50f785hp.com!davidm  Debug (1, "(cursor=%p)\n", c);
419f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm
429f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm  c->dwarf.as = as;
439f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm  c->dwarf.as_arg = as_arg;
44ff0ae70cc3c3c1498724deed519cd18dde6c1e80Arun Sharma  if (as == unw_local_addr_space)
45ff0ae70cc3c3c1498724deed519cd18dde6c1e80Arun Sharma    {
46ff0ae70cc3c3c1498724deed519cd18dde6c1e80Arun Sharma      c->dwarf.as_arg = c;
47ff0ae70cc3c3c1498724deed519cd18dde6c1e80Arun Sharma      c->uc = as_arg;
48ff0ae70cc3c3c1498724deed519cd18dde6c1e80Arun Sharma    }
49ff0ae70cc3c3c1498724deed519cd18dde6c1e80Arun Sharma  else
50ff0ae70cc3c3c1498724deed519cd18dde6c1e80Arun Sharma    {
51ff0ae70cc3c3c1498724deed519cd18dde6c1e80Arun Sharma      c->dwarf.as_arg = as_arg;
52ff0ae70cc3c3c1498724deed519cd18dde6c1e80Arun Sharma      c->uc = 0;
53ff0ae70cc3c3c1498724deed519cd18dde6c1e80Arun Sharma    }
54a9dce3c06e6ffcb83957e734d960505415118f00Lassi Tuura  return common_init (c, 0);
559f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm#endif /* !UNW_LOCAL_ONLY */
569f2cd2318d7afea7f05ffe9041fbcbedd2594b08homeip.net!davidm}
57