Logo Search packages:      
Sourcecode: linux version File versions  Download package

registers.c

/*
 * Copyright (C) 2006-2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
 * Licensed under the GPL
 */

#include <errno.h>
#include <sys/ptrace.h>
#define __FRAME_OFFSETS
#include <asm/ptrace.h>
#include "longjmp.h"
#include "user.h"

int save_fp_registers(int pid, unsigned long *fp_regs)
{
      if(ptrace(PTRACE_GETFPREGS, pid, 0, fp_regs) < 0)
            return -errno;
      return 0;
}

int restore_fp_registers(int pid, unsigned long *fp_regs)
{
      if(ptrace(PTRACE_SETFPREGS, pid, 0, fp_regs) < 0)
            return -errno;
      return 0;
}

unsigned long get_thread_reg(int reg, jmp_buf *buf)
{
      switch(reg){
      case RIP: return buf[0]->__rip;
      case RSP: return buf[0]->__rsp;
      case RBP: return buf[0]->__rbp;
      default:
            printk("get_thread_regs - unknown register %d\n", reg);
            return 0;
      }
}

Generated by  Doxygen 1.6.0   Back to index