162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) 362306a36Sopenharmony_ci * Licensed under the GPL 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef __SYS_SIGCONTEXT_X86_H 762306a36Sopenharmony_ci#define __SYS_SIGCONTEXT_X86_H 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciextern void get_regs_from_mc(struct uml_pt_regs *, mcontext_t *); 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#ifdef __i386__ 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#define GET_FAULTINFO_FROM_MC(fi, mc) \ 1462306a36Sopenharmony_ci { \ 1562306a36Sopenharmony_ci (fi).cr2 = (mc)->cr2; \ 1662306a36Sopenharmony_ci (fi).error_code = (mc)->gregs[REG_ERR]; \ 1762306a36Sopenharmony_ci (fi).trap_no = (mc)->gregs[REG_TRAPNO]; \ 1862306a36Sopenharmony_ci } 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#else 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#define GET_FAULTINFO_FROM_MC(fi, mc) \ 2362306a36Sopenharmony_ci { \ 2462306a36Sopenharmony_ci (fi).cr2 = (mc)->gregs[REG_CR2]; \ 2562306a36Sopenharmony_ci (fi).error_code = (mc)->gregs[REG_ERR]; \ 2662306a36Sopenharmony_ci (fi).trap_no = (mc)->gregs[REG_TRAPNO]; \ 2762306a36Sopenharmony_ci } 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci#endif 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci#endif 32