1a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang/* libunwind - a platform-independent unwind library
2a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang   Copyright (C) 2004 Hewlett-Packard Co
3a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang	Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
4a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang
5a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-TangThis file is part of libunwind.
6a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang
7a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-TangPermission is hereby granted, free of charge, to any person obtaining
8a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tanga copy of this software and associated documentation files (the
9a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang"Software"), to deal in the Software without restriction, including
10a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tangwithout limitation the rights to use, copy, modify, merge, publish,
11a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tangdistribute, sublicense, and/or sell copies of the Software, and to
12a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tangpermit persons to whom the Software is furnished to do so, subject to
13a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tangthe following conditions:
14a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang
15a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-TangThe above copyright notice and this permission notice shall be
16a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tangincluded in all copies or substantial portions of the Software.
17a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang
18a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-TangTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-TangEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-TangMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-TangNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-TangLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-TangOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-TangWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
25a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang
26a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang#include <stdlib.h>
27a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang
28a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang#include "unwind_i.h"
29a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang
30a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-TangPROTECTED unw_addr_space_t
31a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tangunw_create_addr_space (unw_accessors_t *a, int byte_order)
32a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang{
33a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang#ifdef UNW_LOCAL_ONLY
34a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang  return NULL;
35a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang#else
365fef17c05dd20ea6c0a6e3532177a916ef022a3cTommi Rantala  unw_addr_space_t as;
37a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang
385fef17c05dd20ea6c0a6e3532177a916ef022a3cTommi Rantala  /*
395fef17c05dd20ea6c0a6e3532177a916ef022a3cTommi Rantala   * hppa supports only big-endian.
405fef17c05dd20ea6c0a6e3532177a916ef022a3cTommi Rantala   */
415fef17c05dd20ea6c0a6e3532177a916ef022a3cTommi Rantala  if (byte_order != 0 && byte_order != __BIG_ENDIAN)
425fef17c05dd20ea6c0a6e3532177a916ef022a3cTommi Rantala    return NULL;
435fef17c05dd20ea6c0a6e3532177a916ef022a3cTommi Rantala
445fef17c05dd20ea6c0a6e3532177a916ef022a3cTommi Rantala  as = malloc (sizeof (*as));
45a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang  if (!as)
46a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang    return NULL;
47a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang
48a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang  memset (as, 0, sizeof (*as));
49a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang
50a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang  as->acc = *a;
51a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang
52a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang  return as;
53a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang#endif
54a369768c279654ae247643f81e0d2f6f7ddd4d15David Mosberger-Tang}
55