Home | History | Annotate | Download | only in runtime
      1 // Created by cgo -cdefs and converted (by hand) to Go
      2 // ../cmd/cgo/cgo -cdefs defs_linux.go defs1_linux.go defs2_linux.go
      3 
      4 package runtime
      5 
      6 const (
      7 	_EINTR  = 0x4
      8 	_EAGAIN = 0xb
      9 	_ENOMEM = 0xc
     10 
     11 	_PROT_NONE  = 0x0
     12 	_PROT_READ  = 0x1
     13 	_PROT_WRITE = 0x2
     14 	_PROT_EXEC  = 0x4
     15 
     16 	_MAP_ANON    = 0x20
     17 	_MAP_PRIVATE = 0x2
     18 	_MAP_FIXED   = 0x10
     19 
     20 	_MADV_DONTNEED   = 0x4
     21 	_MADV_HUGEPAGE   = 0xe
     22 	_MADV_NOHUGEPAGE = 0xf
     23 
     24 	_SA_RESTART  = 0x10000000
     25 	_SA_ONSTACK  = 0x8000000
     26 	_SA_RESTORER = 0x0 // Only used on intel
     27 	_SA_SIGINFO  = 0x4
     28 
     29 	_SIGHUP    = 0x1
     30 	_SIGINT    = 0x2
     31 	_SIGQUIT   = 0x3
     32 	_SIGILL    = 0x4
     33 	_SIGTRAP   = 0x5
     34 	_SIGABRT   = 0x6
     35 	_SIGBUS    = 0x7
     36 	_SIGFPE    = 0x8
     37 	_SIGKILL   = 0x9
     38 	_SIGUSR1   = 0xa
     39 	_SIGSEGV   = 0xb
     40 	_SIGUSR2   = 0xc
     41 	_SIGPIPE   = 0xd
     42 	_SIGALRM   = 0xe
     43 	_SIGSTKFLT = 0x10
     44 	_SIGCHLD   = 0x11
     45 	_SIGCONT   = 0x12
     46 	_SIGSTOP   = 0x13
     47 	_SIGTSTP   = 0x14
     48 	_SIGTTIN   = 0x15
     49 	_SIGTTOU   = 0x16
     50 	_SIGURG    = 0x17
     51 	_SIGXCPU   = 0x18
     52 	_SIGXFSZ   = 0x19
     53 	_SIGVTALRM = 0x1a
     54 	_SIGPROF   = 0x1b
     55 	_SIGWINCH  = 0x1c
     56 	_SIGIO     = 0x1d
     57 	_SIGPWR    = 0x1e
     58 	_SIGSYS    = 0x1f
     59 
     60 	_FPE_INTDIV = 0x1
     61 	_FPE_INTOVF = 0x2
     62 	_FPE_FLTDIV = 0x3
     63 	_FPE_FLTOVF = 0x4
     64 	_FPE_FLTUND = 0x5
     65 	_FPE_FLTRES = 0x6
     66 	_FPE_FLTINV = 0x7
     67 	_FPE_FLTSUB = 0x8
     68 
     69 	_BUS_ADRALN = 0x1
     70 	_BUS_ADRERR = 0x2
     71 	_BUS_OBJERR = 0x3
     72 
     73 	_SEGV_MAPERR = 0x1
     74 	_SEGV_ACCERR = 0x2
     75 
     76 	_ITIMER_REAL    = 0x0
     77 	_ITIMER_VIRTUAL = 0x1
     78 	_ITIMER_PROF    = 0x2
     79 
     80 	_EPOLLIN       = 0x1
     81 	_EPOLLOUT      = 0x4
     82 	_EPOLLERR      = 0x8
     83 	_EPOLLHUP      = 0x10
     84 	_EPOLLRDHUP    = 0x2000
     85 	_EPOLLET       = 0x80000000
     86 	_EPOLL_CLOEXEC = 0x80000
     87 	_EPOLL_CTL_ADD = 0x1
     88 	_EPOLL_CTL_DEL = 0x2
     89 	_EPOLL_CTL_MOD = 0x3
     90 )
     91 
     92 type timespec struct {
     93 	tv_sec  int64
     94 	tv_nsec int64
     95 }
     96 
     97 func (ts *timespec) set_sec(x int64) {
     98 	ts.tv_sec = x
     99 }
    100 
    101 func (ts *timespec) set_nsec(x int32) {
    102 	ts.tv_nsec = int64(x)
    103 }
    104 
    105 type timeval struct {
    106 	tv_sec  int64
    107 	tv_usec int64
    108 }
    109 
    110 func (tv *timeval) set_usec(x int32) {
    111 	tv.tv_usec = int64(x)
    112 }
    113 
    114 type sigactiont struct {
    115 	sa_handler  uintptr
    116 	sa_flags    uint64
    117 	sa_restorer uintptr
    118 	sa_mask     uint64
    119 }
    120 
    121 type siginfo struct {
    122 	si_signo int32
    123 	si_errno int32
    124 	si_code  int32
    125 	// below here is a union; si_addr is the only field we use
    126 	si_addr uint64
    127 }
    128 
    129 type itimerval struct {
    130 	it_interval timeval
    131 	it_value    timeval
    132 }
    133 
    134 type epollevent struct {
    135 	events uint32
    136 	_pad   uint32
    137 	data   [8]byte // to match amd64
    138 }
    139 
    140 // Created by cgo -cdefs and then converted to Go by hand
    141 // ../cmd/cgo/cgo -cdefs defs_linux.go defs1_linux.go defs2_linux.go
    142 
    143 const (
    144 	_O_RDONLY  = 0x0
    145 	_O_CLOEXEC = 0x80000
    146 )
    147 
    148 type usigset struct {
    149 	__val [16]uint64
    150 }
    151 
    152 type sigaltstackt struct {
    153 	ss_sp     *byte
    154 	ss_flags  int32
    155 	pad_cgo_0 [4]byte
    156 	ss_size   uintptr
    157 }
    158 
    159 type sigcontext struct {
    160 	fault_address uint64
    161 	/* AArch64 registers */
    162 	regs       [31]uint64
    163 	sp         uint64
    164 	pc         uint64
    165 	pstate     uint64
    166 	_pad       [8]byte // __attribute__((__aligned__(16)))
    167 	__reserved [4096]byte
    168 }
    169 
    170 type ucontext struct {
    171 	uc_flags    uint64
    172 	uc_link     *ucontext
    173 	uc_stack    sigaltstackt
    174 	uc_sigmask  uint64
    175 	_pad        [(1024 - 64) / 8]byte
    176 	_pad2       [8]byte // sigcontext must be aligned to 16-byte
    177 	uc_mcontext sigcontext
    178 }
    179