Update sigcontext and siginfo structs to match those currently in use by OpenBSD armv7.
Also correct the offset of the fault address field in the siginfo struct, which moved
due to the switch to EABI.
Change-Id: Icdd95222346239fcc04b95ae0fcefae09b7aa044
Reviewed-on: https://go-review.googlesource.com/c/154077
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
sc_usr_lr uint32
sc_svc_lr uint32
sc_pc uint32
+ sc_fpused uint32
+ sc_fpscr uint32
+ sc_fpreg [32]uint64
}
type siginfo struct {
- si_signo int32
- si_code int32
- si_errno int32
- _data [116]byte
+ si_signo int32
+ si_code int32
+ si_errno int32
+ pad_cgo_0 [4]byte
+ _data [120]byte
}
type stackt struct {
func (c *sigctxt) sigcode() uint32 { return uint32(c.info.si_code) }
func (c *sigctxt) sigaddr() uint32 {
- return *(*uint32)(add(unsafe.Pointer(c.info), 12))
+ return *(*uint32)(add(unsafe.Pointer(c.info), 16))
}
func (c *sigctxt) set_pc(x uint32) { c.regs().sc_pc = x }
func (c *sigctxt) set_sigcode(x uint32) { c.info.si_code = int32(x) }
func (c *sigctxt) set_sigaddr(x uint32) {
- *(*uint32)(add(unsafe.Pointer(c.info), 12)) = x
+ *(*uint32)(add(unsafe.Pointer(c.info), 16)) = x
}