erifan01 | bc7efcf | 2019-11-21 17:35:28 +0800 | [diff] [blame] | 1 | // Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT. |
Ian Lance Taylor | 3e3646d | 2017-10-25 17:04:09 -0700 | [diff] [blame] | 2 | |
Russ Cox | 9a76102 | 2021-02-19 22:57:36 -0500 | [diff] [blame] | 3 | //go:build linux && (arm || arm64) |
Ian Lance Taylor | 3e3646d | 2017-10-25 17:04:09 -0700 | [diff] [blame] | 4 | |
| 5 | package unix |
| 6 | |
| 7 | import "unsafe" |
| 8 | |
| 9 | // PtraceRegsArm is the registers used by arm binaries. |
| 10 | type PtraceRegsArm struct { |
| 11 | Uregs [18]uint32 |
| 12 | } |
| 13 | |
| 14 | // PtraceGetRegsArm fetches the registers used by arm binaries. |
| 15 | func PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error { |
Dmitri Goutnik | 2977c77 | 2023-02-21 11:39:27 -0500 | [diff] [blame] | 16 | return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) |
Ian Lance Taylor | 3e3646d | 2017-10-25 17:04:09 -0700 | [diff] [blame] | 17 | } |
| 18 | |
| 19 | // PtraceSetRegsArm sets the registers used by arm binaries. |
| 20 | func PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error { |
Dmitri Goutnik | 2977c77 | 2023-02-21 11:39:27 -0500 | [diff] [blame] | 21 | return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) |
Ian Lance Taylor | 3e3646d | 2017-10-25 17:04:09 -0700 | [diff] [blame] | 22 | } |
| 23 | |
| 24 | // PtraceRegsArm64 is the registers used by arm64 binaries. |
| 25 | type PtraceRegsArm64 struct { |
| 26 | Regs [31]uint64 |
| 27 | Sp uint64 |
| 28 | Pc uint64 |
| 29 | Pstate uint64 |
| 30 | } |
| 31 | |
| 32 | // PtraceGetRegsArm64 fetches the registers used by arm64 binaries. |
| 33 | func PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error { |
Dmitri Goutnik | 2977c77 | 2023-02-21 11:39:27 -0500 | [diff] [blame] | 34 | return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) |
Ian Lance Taylor | 3e3646d | 2017-10-25 17:04:09 -0700 | [diff] [blame] | 35 | } |
| 36 | |
| 37 | // PtraceSetRegsArm64 sets the registers used by arm64 binaries. |
| 38 | func PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error { |
Dmitri Goutnik | 2977c77 | 2023-02-21 11:39:27 -0500 | [diff] [blame] | 39 | return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) |
Ian Lance Taylor | 3e3646d | 2017-10-25 17:04:09 -0700 | [diff] [blame] | 40 | } |