⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registers.c

📁 linux内核源码
💻 C
字号:
/* * Copyright (C) 2004 PathScale, Inc * Copyright (C) 2004 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) * Licensed under the GPL */#include <errno.h>#include "kern_constants.h"#include "longjmp.h"#include "user.h"#include "sysdep/ptrace_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;}int save_fpx_registers(int pid, unsigned long *fp_regs){	if (ptrace(PTRACE_GETFPXREGS, pid, 0, fp_regs) < 0)		return -errno;	return 0;}int restore_fpx_registers(int pid, unsigned long *fp_regs){	if (ptrace(PTRACE_SETFPXREGS, pid, 0, fp_regs) < 0)		return -errno;	return 0;}unsigned long get_thread_reg(int reg, jmp_buf *buf){	switch (reg) {	case EIP:		return buf[0]->__eip;	case UESP:		return buf[0]->__esp;	case EBP:		return buf[0]->__ebp;	default:		printk(UM_KERN_ERR "get_thread_regs - unknown register %d\n",		       reg);		return 0;	}}int have_fpx_regs = 1;void arch_init_registers(int pid){	unsigned long fpx_regs[HOST_XFP_SIZE];	int err;	err = ptrace(PTRACE_GETFPXREGS, pid, 0, fpx_regs);	if(!err)		return;	if(errno != EIO)		panic("check_ptrace : PTRACE_GETFPXREGS failed, errno = %d",		      errno);	have_fpx_regs = 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -