ptrace.c 1.0 KB

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