changing registers of the child process

hi,'m using the 5.11 kernel version on amd64 architecture, 32-bit. i need help on the following issues
1)a proper structure to represent the register structure in the architecture
2)a function which would change the register values of the child when the control is with the parent.. ptrace_setregs is not supported in solaris , nor we could find ptrace.h library in solaris. Even a dtrace equivalent to this would be fine..
3)can we modify the register values using ptrace_peekuser? the offset in the uarea is required for it.. how to get that?