mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
983 B
32 lines
983 B
/* |
|
* Copyright (C) 2004 Fujitsu Siemens Computers GmbH |
|
* Author: Bodo Stroesser <[email protected]> |
|
* Licensed under the GPL |
|
*/ |
|
|
|
#ifndef __FAULTINFO_X86_64_H |
|
#define __FAULTINFO_X86_64_H |
|
|
|
/* this structure contains the full arch-specific faultinfo |
|
* from the traps. |
|
* On i386, ptrace_faultinfo unfortunately doesn't provide |
|
* all the info, since trap_no is missing. |
|
* All common elements are defined at the same position in |
|
* both structures, thus making it easy to copy the |
|
* contents without knowledge about the structure elements. |
|
*/ |
|
struct faultinfo { |
|
int error_code; /* in ptrace_faultinfo misleadingly called is_write */ |
|
unsigned long cr2; /* in ptrace_faultinfo called addr */ |
|
int trap_no; /* missing in ptrace_faultinfo */ |
|
}; |
|
|
|
#define FAULT_WRITE(fi) ((fi).error_code & 2) |
|
#define FAULT_ADDRESS(fi) ((fi).cr2) |
|
|
|
/* This is Page Fault */ |
|
#define SEGV_IS_FIXABLE(fi) ((fi)->trap_no == 14) |
|
|
|
#define PTRACE_FULL_FAULTINFO 1 |
|
|
|
#endif
|
|
|