Improve NetBSD support: Allow VMA determination with fewer system calls.
[libsigsegv/ericb.git] / src / fault-linux-powerpc.h
blob97fd0ab7167c3767bb3f1f777bec202714456bb2
1 /* Fault handler information. Linux/PowerPC version when it supports POSIX.
2 Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org>
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2, or (at your option)
7 any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software Foundation,
16 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
18 #include "fault-posix-ucontext.h"
20 /* See glibc/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
21 and the definition of GET_STACK in
22 glibc/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h.
23 Note that the 'mcontext_t' defined in
24 glibc/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h,
25 the 'struct sigcontext' defined in <asm/sigcontext.h>,
26 and the 'struct pt_regs' defined in <asm/ptrace.h>
27 are quite different types. */
29 #if __WORDSIZE == 32
30 /* both should be equivalent */
31 # if 0
32 # define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.regs->gpr[1]
33 # else
34 # define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.uc_regs->gregs[1]
35 # endif
36 #else
37 # define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.gp_regs[1]
38 #endif