uml: remove code made redundant by CHOOSE_MODE removal
[safe/jmp/linux-2.6] / arch / um / os-Linux / registers.c
1 /*
2  * Copyright (C) 2004 PathScale, Inc
3  * Licensed under the GPL
4  */
5
6 #include <errno.h>
7 #include <string.h>
8 #include <sys/ptrace.h>
9 #include "user.h"
10 #include "sysdep/ptrace.h"
11
12 /* This is set once at boot time and not changed thereafter */
13
14 static unsigned long exec_regs[MAX_REG_NR];
15
16 void init_thread_registers(struct uml_pt_regs *to)
17 {
18         memcpy(to->regs, exec_regs, sizeof(to->regs));
19 }
20
21 void save_registers(int pid, struct uml_pt_regs *regs)
22 {
23         int err;
24
25         err = ptrace(PTRACE_GETREGS, pid, 0, regs->regs);
26         if(err < 0)
27                 panic("save_registers - saving registers failed, errno = %d\n",
28                       errno);
29 }
30
31 void restore_registers(int pid, struct uml_pt_regs *regs)
32 {
33         int err;
34
35         err = ptrace(PTRACE_SETREGS, pid, 0, regs->regs);
36         if(err < 0)
37                 panic("restore_registers - saving registers failed, "
38                       "errno = %d\n", errno);
39 }
40
41 void init_registers(int pid)
42 {
43         int err;
44
45         err = ptrace(PTRACE_GETREGS, pid, 0, exec_regs);
46         if(err)
47                 panic("check_ptrace : PTRACE_GETREGS failed, errno = %d",
48                       errno);
49 }
50
51 void get_safe_registers(unsigned long *regs)
52 {
53         memcpy(regs, exec_regs, sizeof(exec_regs));
54 }