registers.c

来自「linux 内核源代码」· C语言 代码 · 共 58 行

C
58
字号
/* * Copyright (C) 2004 PathScale, Inc * Copyright (C) 2004 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) * Licensed under the GPL */#include <errno.h>#include <string.h>#include <sys/ptrace.h>#include "sysdep/ptrace.h"#include "user.h"/* This is set once at boot time and not changed thereafter */static unsigned long exec_regs[MAX_REG_NR];void init_thread_registers(struct uml_pt_regs *to){	memcpy(to->gp, exec_regs, sizeof(to->gp));}void save_registers(int pid, struct uml_pt_regs *regs){	int err;	err = ptrace(PTRACE_GETREGS, pid, 0, regs->gp);	if (err < 0)		panic("save_registers - saving registers failed, errno = %d\n",		      errno);}void restore_registers(int pid, struct uml_pt_regs *regs){	int err;	err = ptrace(PTRACE_SETREGS, pid, 0, regs->gp);	if (err < 0)		panic("restore_registers - saving registers failed, "		      "errno = %d\n", errno);}void init_registers(int pid){	int err;	err = ptrace(PTRACE_GETREGS, pid, 0, exec_regs);	if (err)		panic("check_ptrace : PTRACE_GETREGS failed, errno = %d",		      errno);	arch_init_registers(pid);}void get_safe_registers(unsigned long *regs){	memcpy(regs, exec_regs, sizeof(exec_regs));}

⌨️ 快捷键说明

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