1
0
mirror of https://github.com/golang/go synced 2024-10-03 05:21:22 -06:00
go/src/runtime/defs_plan9_386.go
Anthony Martin 3d032d7653 runtime: consolidate arch-specific signal handlers on Plan 9
Change-Id: I4379418853c523fc9aaeb5d6f37bc96117841418
Reviewed-on: https://go-review.googlesource.com/1786
Reviewed-by: David du Colombier <0intro@gmail.com>
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
2014-12-30 14:36:15 +00:00

52 lines
1.3 KiB
Go

package runtime
const _PAGESIZE = 0x1000
type ureg struct {
di uint32 /* general registers */
si uint32 /* ... */
bp uint32 /* ... */
nsp uint32
bx uint32 /* ... */
dx uint32 /* ... */
cx uint32 /* ... */
ax uint32 /* ... */
gs uint32 /* data segments */
fs uint32 /* ... */
es uint32 /* ... */
ds uint32 /* ... */
trap uint32 /* trap _type */
ecode uint32 /* error code (or zero) */
pc uint32 /* pc */
cs uint32 /* old context */
flags uint32 /* old flags */
sp uint32
ss uint32 /* old stack segment */
}
type sigctxt struct {
u *ureg
}
func (c *sigctxt) pc() uintptr { return uintptr(c.u.pc) }
func (c *sigctxt) sp() uintptr { return uintptr(c.u.sp) }
func (c *sigctxt) setpc(x uintptr) { c.u.pc = uint32(x) }
func (c *sigctxt) setsp(x uintptr) { c.u.sp = uint32(x) }
func dumpregs(u *ureg) {
print("ax ", hex(u.ax), "\n")
print("bx ", hex(u.bx), "\n")
print("cx ", hex(u.cx), "\n")
print("dx ", hex(u.dx), "\n")
print("di ", hex(u.di), "\n")
print("si ", hex(u.si), "\n")
print("bp ", hex(u.bp), "\n")
print("sp ", hex(u.sp), "\n")
print("pc ", hex(u.pc), "\n")
print("flags ", hex(u.flags), "\n")
print("cs ", hex(u.cs), "\n")
print("fs ", hex(u.fs), "\n")
print("gs ", hex(u.gs), "\n")
}