um: start switching the references to host mcontext_t to its userland type
[cascardo/linux.git] / arch / um / sys-x86 / shared / sysdep / sigcontext_64.h
1 /*
2  * Copyright 2003 PathScale, Inc.
3  *
4  * Licensed under the GPL
5  */
6
7 #ifndef __SYSDEP_X86_64_SIGCONTEXT_H
8 #define __SYSDEP_X86_64_SIGCONTEXT_H
9
10 #include <generated/user_constants.h>
11
12 #define SC_OFFSET(sc, field) \
13          *((unsigned long *) &(((char *) (sc))[HOST_##field]))
14 #define SC_CR2(sc) SC_OFFSET(sc, SC_CR2)
15 #define SC_ERR(sc) SC_OFFSET(sc, SC_ERR)
16 #define SC_TRAPNO(sc) SC_OFFSET(sc, SC_TRAPNO)
17
18 #define GET_FAULTINFO_FROM_SC(fi, sc) \
19         { \
20                 (fi).cr2 = SC_CR2(sc); \
21                 (fi).error_code = SC_ERR(sc); \
22                 (fi).trap_no = SC_TRAPNO(sc); \
23         }
24
25 #define GET_FAULTINFO_FROM_MC(fi, mc) \
26         { \
27                 (fi).cr2 = (mc)->gregs[REG_CR2]; \
28                 (fi).error_code = (mc)->gregs[REG_ERR]; \
29                 (fi).trap_no = (mc)->gregs[REG_TRAPNO]; \
30         }
31
32 #endif