FILE
registers.c
File preview with syntax highlighting.
linux-6.19.14/arch/um/os-Linux/registers.c
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (C) 2004 PathScale, Inc 4 * Copyright (C) 2004 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) 5 */ 6 7#include <errno.h> 8#include <string.h> 9#include <sys/ptrace.h> 10#include <sysdep/ptrace.h> 11#include <sysdep/ptrace_user.h> 12#include <registers.h> 13#include <stdlib.h> 14 15/* This is set once at boot time and not changed thereafter */ 16 17unsigned long exec_regs[MAX_REG_NR]; 18unsigned long *exec_fp_regs; 19 20int init_pid_registers(int pid) 21{ 22 int err; 23 24 err = ptrace(PTRACE_GETREGS, pid, 0, exec_regs); 25 if (err < 0) 26 return -errno; 27 28 err = arch_init_registers(pid); 29 if (err < 0) 30 return err; 31 32 exec_fp_regs = malloc(host_fp_size); 33 get_fp_registers(pid, exec_fp_regs); 34 return 0; 35} 36 37void get_safe_registers(unsigned long *regs, unsigned long *fp_regs) 38{ 39 memcpy(regs, exec_regs, sizeof(exec_regs)); 40 41 if (fp_regs) 42 memcpy(fp_regs, exec_fp_regs, host_fp_size); 43}
~/
Read-only file preview.