fad1c45c93
The old code had the IP and SP coming from the registers in the thread struct, which are completely wrong since those are the userspace registers. This fixes that by pulling the correct values from the jmp_buf in which the kernel state of each thread is stored. Signed-off-by: Allan Graves <allan.graves@oracle.com> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
20 lines
629 B
C
20 lines
629 B
C
/*
|
|
* Copyright (C) 2004 PathScale, Inc
|
|
* Licensed under the GPL
|
|
*/
|
|
|
|
#ifndef __REGISTERS_H
|
|
#define __REGISTERS_H
|
|
|
|
#include "sysdep/ptrace.h"
|
|
|
|
extern void init_thread_registers(union uml_pt_regs *to);
|
|
extern int save_fp_registers(int pid, unsigned long *fp_regs);
|
|
extern int restore_fp_registers(int pid, unsigned long *fp_regs);
|
|
extern void save_registers(int pid, union uml_pt_regs *regs);
|
|
extern void restore_registers(int pid, union uml_pt_regs *regs);
|
|
extern void init_registers(int pid);
|
|
extern void get_safe_registers(unsigned long * regs);
|
|
extern void get_thread_regs(union uml_pt_regs *uml_regs, void *buffer);
|
|
|
|
#endif
|