package runtime

// Constants
const (
	_EINTR  = 0x4
	_ENOMEM = 0xc
	_EAGAIN = 0xb
	_ENOSYS = 0x26

	_PROT_NONE  = 0
	_PROT_READ  = 0x1
	_PROT_WRITE = 0x2
	_PROT_EXEC  = 0x4

	_MAP_ANON    = 0x20
	_MAP_PRIVATE = 0x2
	_MAP_FIXED   = 0x10

	_MADV_DONTNEED   = 0x4
	_MADV_FREE       = 0x8
	_MADV_HUGEPAGE   = 0xe
	_MADV_NOHUGEPAGE = 0xf

	_SA_RESTART     = 0x10000000
	_SA_ONSTACK     = 0x8000000
	_SA_RESTORER    = 0 // unused on ARM
	_SA_SIGINFO     = 0x4
	_SIGHUP         = 0x1
	_SIGINT         = 0x2
	_SIGQUIT        = 0x3
	_SIGILL         = 0x4
	_SIGTRAP        = 0x5
	_SIGABRT        = 0x6
	_SIGBUS         = 0x7
	_SIGFPE         = 0x8
	_SIGKILL        = 0x9
	_SIGUSR1        = 0xa
	_SIGSEGV        = 0xb
	_SIGUSR2        = 0xc
	_SIGPIPE        = 0xd
	_SIGALRM        = 0xe
	_SIGSTKFLT      = 0x10
	_SIGCHLD        = 0x11
	_SIGCONT        = 0x12
	_SIGSTOP        = 0x13
	_SIGTSTP        = 0x14
	_SIGTTIN        = 0x15
	_SIGTTOU        = 0x16
	_SIGURG         = 0x17
	_SIGXCPU        = 0x18
	_SIGXFSZ        = 0x19
	_SIGVTALRM      = 0x1a
	_SIGPROF        = 0x1b
	_SIGWINCH       = 0x1c
	_SIGIO          = 0x1d
	_SIGPWR         = 0x1e
	_SIGSYS         = 0x1f
	_FPE_INTDIV     = 0x1
	_FPE_INTOVF     = 0x2
	_FPE_FLTDIV     = 0x3
	_FPE_FLTOVF     = 0x4
	_FPE_FLTUND     = 0x5
	_FPE_FLTRES     = 0x6
	_FPE_FLTINV     = 0x7
	_FPE_FLTSUB     = 0x8
	_BUS_ADRALN     = 0x1
	_BUS_ADRERR     = 0x2
	_BUS_OBJERR     = 0x3
	_SEGV_MAPERR    = 0x1
	_SEGV_ACCERR    = 0x2
	_ITIMER_REAL    = 0
	_ITIMER_PROF    = 0x2
	_ITIMER_VIRTUAL = 0x1
	_O_RDONLY       = 0
	_O_NONBLOCK     = 0x800
	_O_CLOEXEC      = 0x80000

	_EPOLLIN       = 0x1
	_EPOLLOUT      = 0x4
	_EPOLLERR      = 0x8
	_EPOLLHUP      = 0x10
	_EPOLLRDHUP    = 0x2000
	_EPOLLET       = 0x80000000
	_EPOLL_CLOEXEC = 0x80000
	_EPOLL_CTL_ADD = 0x1
	_EPOLL_CTL_DEL = 0x2
	_EPOLL_CTL_MOD = 0x3

	_AF_UNIX    = 0x1
	_F_SETFL    = 0x4
	_SOCK_DGRAM = 0x2
)

type timespec struct {
	tv_sec  int32
	tv_nsec int32
}

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

type stackt struct {
	ss_sp    *byte
	ss_flags int32
	ss_size  uintptr
}

type sigcontext struct {
	trap_no       uint32
	error_code    uint32
	oldmask       uint32
	r0            uint32
	r1            uint32
	r2            uint32
	r3            uint32
	r4            uint32
	r5            uint32
	r6            uint32
	r7            uint32
	r8            uint32
	r9            uint32
	r10           uint32
	fp            uint32
	ip            uint32
	sp            uint32
	lr            uint32
	pc            uint32
	cpsr          uint32
	fault_address uint32
}

type ucontext struct {
	uc_flags    uint32
	uc_link     *ucontext
	uc_stack    stackt
	uc_mcontext sigcontext
	uc_sigmask  uint32
	__unused    [31]int32
	uc_regspace [128]uint32
}

type timeval struct {
	tv_sec  int32
	tv_usec int32
}

func (tv *timeval) set_usec(x int32) {
	tv.tv_usec = x
}

type itimerval struct {
	it_interval timeval
	it_value    timeval
}

type siginfo struct {
	si_signo int32
	si_errno int32
	si_code  int32
	// below here is a union; si_addr is the only field we use
	si_addr uint32
}

type sigactiont struct {
	sa_handler  uintptr
	sa_flags    uint32
	sa_restorer uintptr
	sa_mask     uint64
}

type epollevent struct {
	events uint32
	_pad   uint32
	data   [8]byte // to match amd64
}

type sockaddr_un struct {
	family uint16
	path   [108]byte
}
