diff options
Diffstat (limited to 'arch/x86/um/shared/sysdep/mcontext.h')
| -rw-r--r-- | arch/x86/um/shared/sysdep/mcontext.h | 31 | 
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/x86/um/shared/sysdep/mcontext.h b/arch/x86/um/shared/sysdep/mcontext.h new file mode 100644 index 00000000000..b724c54da31 --- /dev/null +++ b/arch/x86/um/shared/sysdep/mcontext.h @@ -0,0 +1,31 @@ +/*  + * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) + * Licensed under the GPL + */ + +#ifndef __SYS_SIGCONTEXT_X86_H +#define __SYS_SIGCONTEXT_X86_H + +extern void get_regs_from_mc(struct uml_pt_regs *, mcontext_t *); + +#ifdef __i386__ + +#define GET_FAULTINFO_FROM_MC(fi, mc) \ +	{ \ +		(fi).cr2 = (mc)->cr2; \ +		(fi).error_code = (mc)->gregs[REG_ERR]; \ +		(fi).trap_no = (mc)->gregs[REG_TRAPNO]; \ +	} + +#else + +#define GET_FAULTINFO_FROM_MC(fi, mc) \ +	{ \ +		(fi).cr2 = (mc)->gregs[REG_CR2]; \ +		(fi).error_code = (mc)->gregs[REG_ERR]; \ +		(fi).trap_no = (mc)->gregs[REG_TRAPNO]; \ +	} + +#endif + +#endif  | 
