ARM: OMAP2+: Prepare to move GPMC to drivers by platform data header
[linux/fpc-iii.git] / arch / x86 / um / shared / sysdep / faultinfo_32.h
bloba26086b8a800223003cd30e9fe9df372470bfc7d
1 /*
2 * Copyright (C) 2004 Fujitsu Siemens Computers GmbH
3 * Author: Bodo Stroesser <bstroesser@fujitsu-siemens.com>
4 * Licensed under the GPL
5 */
7 #ifndef __FAULTINFO_I386_H
8 #define __FAULTINFO_I386_H
10 /* this structure contains the full arch-specific faultinfo
11 * from the traps.
12 * On i386, ptrace_faultinfo unfortunately doesn't provide
13 * all the info, since trap_no is missing.
14 * All common elements are defined at the same position in
15 * both structures, thus making it easy to copy the
16 * contents without knowledge about the structure elements.
18 struct faultinfo {
19 int error_code; /* in ptrace_faultinfo misleadingly called is_write */
20 unsigned long cr2; /* in ptrace_faultinfo called addr */
21 int trap_no; /* missing in ptrace_faultinfo */
24 #define FAULT_WRITE(fi) ((fi).error_code & 2)
25 #define FAULT_ADDRESS(fi) ((fi).cr2)
27 /* This is Page Fault */
28 #define SEGV_IS_FIXABLE(fi) ((fi)->trap_no == 14)
30 /* SKAS3 has no trap_no on i386, but get_skas_faultinfo() sets it to 0. */
31 #define SEGV_MAYBE_FIXABLE(fi) ((fi)->trap_no == 0 && ptrace_faultinfo)
33 #define PTRACE_FULL_FAULTINFO 0
35 #endif