1// SPDX-License-Identifier: GPL-2.0
2#include <linux/ptrace.h>
3
4/**
5 * regs_query_register_offset() - query register offset from its name
6 * @name: the name of a register
7 *
8 * regs_query_register_offset() returns the offset of a register in struct
9 * pt_regs from its name. If the name is invalid, this returns -EINVAL;
10 */
11int regs_query_register_offset(const char *name)
12{
13 const struct pt_regs_offset *roff;
14 for (roff = regoffset_table; roff->name != NULL; roff++)
15 if (!strcmp(roff->name, name))
16 return roff->offset;
17 return -EINVAL;
18}
19
20/**
21 * regs_query_register_name() - query register name from its offset
22 * @offset: the offset of a register in struct pt_regs.
23 *
24 * regs_query_register_name() returns the name of a register from its
25 * offset in struct pt_regs. If the @offset is invalid, this returns NULL;
26 */
27const char *regs_query_register_name(unsigned int offset)
28{
29 const struct pt_regs_offset *roff;
30 for (roff = regoffset_table; roff->name != NULL; roff++)
31 if (roff->offset == offset)
32 return roff->name;
33 return NULL;
34}
35

source code of linux/arch/sh/kernel/ptrace.c