Remove my old invalid email address which can be found in a couple of files. Instead of updating it, just remove my contact data completely from source files. We have git and other tools which allow to figure out who is responsible for what with recent contact data. Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
44 lines
996 B
C
44 lines
996 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Mapping of DWARF debug register numbers into register names.
|
|
*
|
|
* Copyright IBM Corp. 2010, 2017
|
|
* Author(s): Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
|
|
*
|
|
*/
|
|
|
|
#include <errno.h>
|
|
#include <stddef.h>
|
|
#include <stdlib.h>
|
|
#include <linux/kernel.h>
|
|
#include <asm/ptrace.h>
|
|
#include <string.h>
|
|
#include <dwarf-regs.h>
|
|
#include "dwarf-regs-table.h"
|
|
|
|
const char *get_arch_regstr(unsigned int n)
|
|
{
|
|
return (n >= ARRAY_SIZE(s390_dwarf_regs)) ? NULL : s390_dwarf_regs[n];
|
|
}
|
|
|
|
/*
|
|
* Convert the register name into an offset to struct pt_regs (kernel).
|
|
* This is required by the BPF prologue generator. The BPF
|
|
* program is called in the BPF overflow handler in the perf
|
|
* core.
|
|
*/
|
|
int regs_query_register_offset(const char *name)
|
|
{
|
|
unsigned long gpr;
|
|
|
|
if (!name || strncmp(name, "%r", 2))
|
|
return -EINVAL;
|
|
|
|
errno = 0;
|
|
gpr = strtoul(name + 2, NULL, 10);
|
|
if (errno || gpr >= 16)
|
|
return -EINVAL;
|
|
|
|
return offsetof(user_pt_regs, gprs) + 8 * gpr;
|
|
}
|