aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/include/sysdep-i386/sigcontext.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/um/include/sysdep-i386/sigcontext.h')
-rw-r--r--arch/um/include/sysdep-i386/sigcontext.h30
1 files changed, 2 insertions, 28 deletions
diff --git a/arch/um/include/sysdep-i386/sigcontext.h b/arch/um/include/sysdep-i386/sigcontext.h
index 23fd2644d7ed..67e77122aa45 100644
--- a/arch/um/include/sysdep-i386/sigcontext.h
+++ b/arch/um/include/sysdep-i386/sigcontext.h
@@ -1,19 +1,15 @@
1/* 1/*
2 * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com) 2 * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
3 * Licensed under the GPL 3 * Licensed under the GPL
4 */ 4 */
5 5
6#ifndef __SYS_SIGCONTEXT_I386_H 6#ifndef __SYS_SIGCONTEXT_I386_H
7#define __SYS_SIGCONTEXT_I386_H 7#define __SYS_SIGCONTEXT_I386_H
8 8
9#include "uml-config.h" 9#include "sysdep/sc.h"
10#include <sysdep/sc.h>
11 10
12#define IP_RESTART_SYSCALL(ip) ((ip) -= 2) 11#define IP_RESTART_SYSCALL(ip) ((ip) -= 2)
13 12
14#define SC_RESTART_SYSCALL(sc) IP_RESTART_SYSCALL(SC_IP(sc))
15#define SC_SET_SYSCALL_RETURN(sc, result) SC_EAX(sc) = (result)
16
17#define GET_FAULTINFO_FROM_SC(fi,sc) \ 13#define GET_FAULTINFO_FROM_SC(fi,sc) \
18 { \ 14 { \
19 (fi).cr2 = SC_CR2(sc); \ 15 (fi).cr2 = SC_CR2(sc); \
@@ -21,32 +17,10 @@
21 (fi).trap_no = SC_TRAPNO(sc); \ 17 (fi).trap_no = SC_TRAPNO(sc); \
22 } 18 }
23 19
24/* ptrace expects that, at the start of a system call, %eax contains
25 * -ENOSYS, so this makes it so.
26 */
27#define SC_START_SYSCALL(sc) do SC_EAX(sc) = -ENOSYS; while(0)
28
29/* This is Page Fault */ 20/* This is Page Fault */
30#define SEGV_IS_FIXABLE(fi) ((fi)->trap_no == 14) 21#define SEGV_IS_FIXABLE(fi) ((fi)->trap_no == 14)
31 22
32/* SKAS3 has no trap_no on i386, but get_skas_faultinfo() sets it to 0. */ 23/* SKAS3 has no trap_no on i386, but get_skas_faultinfo() sets it to 0. */
33#ifdef UML_CONFIG_MODE_SKAS
34#define SEGV_MAYBE_FIXABLE(fi) ((fi)->trap_no == 0 && ptrace_faultinfo) 24#define SEGV_MAYBE_FIXABLE(fi) ((fi)->trap_no == 0 && ptrace_faultinfo)
35#else
36#define SEGV_MAYBE_FIXABLE(fi) 0
37#endif
38
39extern unsigned long *sc_sigmask(void *sc_ptr);
40extern int sc_get_fpregs(unsigned long buf, void *sc_ptr);
41 25
42#endif 26#endif
43/*
44 * Overrides for Emacs so that we follow Linus's tabbing style.
45 * Emacs will notice this stuff at the end of the file and automatically
46 * adjust the settings for this buffer only. This must remain at the end
47 * of the file.
48 * ---------------------------------------------------------------------------
49 * Local variables:
50 * c-file-style: "linux"
51 * End:
52 */