package runtime

const (
	// These values are referred to in the source code
	// but really don't matter. Even so, use the standard numbers.
	_SIGQUIT = 3
	_SIGTRAP = 5
	_SIGSEGV = 11
	_SIGPROF = 27
)

type timespec struct {
	tv_sec  int64
	tv_nsec int32
}

//go:nosplit
func (ts *timespec) setNsec(ns int64) {
	ts.tv_sec = int64(timediv(ns, 1e9, &ts.tv_nsec))
}

type excregsarm struct {
	r0   uint32
	r1   uint32
	r2   uint32
	r3   uint32
	r4   uint32
	r5   uint32
	r6   uint32
	r7   uint32
	r8   uint32
	r9   uint32 // the value reported here is undefined.
	r10  uint32
	r11  uint32
	r12  uint32
	sp   uint32 /* r13 */
	lr   uint32 /* r14 */
	pc   uint32 /* r15 */
	cpsr uint32
}

type exccontext struct {
	size                    uint32
	portable_context_offset uint32
	portable_context_size   uint32
	arch                    uint32
	regs_size               uint32
	reserved                [11]uint32
	regs                    excregsarm
}

type excportablecontext struct {
	pc uint32
	sp uint32
	fp uint32
}
