]> Cypherpunks.ru repositories - gostls13.git/blob - src/runtime/defs_linux_mipsx.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / src / runtime / defs_linux_mipsx.go
1 // Copyright 2016 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 //go:build (mips || mipsle) && linux
6
7 package runtime
8
9 import "unsafe"
10
11 const (
12         _EINTR  = 0x4
13         _EAGAIN = 0xb
14         _ENOMEM = 0xc
15
16         _PROT_NONE  = 0x0
17         _PROT_READ  = 0x1
18         _PROT_WRITE = 0x2
19         _PROT_EXEC  = 0x4
20
21         _MAP_ANON    = 0x800
22         _MAP_PRIVATE = 0x2
23         _MAP_FIXED   = 0x10
24
25         _MADV_DONTNEED   = 0x4
26         _MADV_FREE       = 0x8
27         _MADV_HUGEPAGE   = 0xe
28         _MADV_NOHUGEPAGE = 0xf
29         _MADV_COLLAPSE   = 0x19
30
31         _SA_RESTART = 0x10000000
32         _SA_ONSTACK = 0x8000000
33         _SA_SIGINFO = 0x8
34
35         _SI_KERNEL = 0x80
36         _SI_TIMER  = -0x2
37
38         _SIGHUP    = 0x1
39         _SIGINT    = 0x2
40         _SIGQUIT   = 0x3
41         _SIGILL    = 0x4
42         _SIGTRAP   = 0x5
43         _SIGABRT   = 0x6
44         _SIGEMT    = 0x7
45         _SIGFPE    = 0x8
46         _SIGKILL   = 0x9
47         _SIGBUS    = 0xa
48         _SIGSEGV   = 0xb
49         _SIGSYS    = 0xc
50         _SIGPIPE   = 0xd
51         _SIGALRM   = 0xe
52         _SIGUSR1   = 0x10
53         _SIGUSR2   = 0x11
54         _SIGCHLD   = 0x12
55         _SIGPWR    = 0x13
56         _SIGWINCH  = 0x14
57         _SIGURG    = 0x15
58         _SIGIO     = 0x16
59         _SIGSTOP   = 0x17
60         _SIGTSTP   = 0x18
61         _SIGCONT   = 0x19
62         _SIGTTIN   = 0x1a
63         _SIGTTOU   = 0x1b
64         _SIGVTALRM = 0x1c
65         _SIGPROF   = 0x1d
66         _SIGXCPU   = 0x1e
67         _SIGXFSZ   = 0x1f
68
69         _SIGRTMIN = 0x20
70
71         _FPE_INTDIV = 0x1
72         _FPE_INTOVF = 0x2
73         _FPE_FLTDIV = 0x3
74         _FPE_FLTOVF = 0x4
75         _FPE_FLTUND = 0x5
76         _FPE_FLTRES = 0x6
77         _FPE_FLTINV = 0x7
78         _FPE_FLTSUB = 0x8
79
80         _BUS_ADRALN = 0x1
81         _BUS_ADRERR = 0x2
82         _BUS_OBJERR = 0x3
83
84         _SEGV_MAPERR = 0x1
85         _SEGV_ACCERR = 0x2
86
87         _ITIMER_REAL    = 0x0
88         _ITIMER_VIRTUAL = 0x1
89         _ITIMER_PROF    = 0x2
90
91         _CLOCK_THREAD_CPUTIME_ID = 0x3
92
93         _SIGEV_THREAD_ID = 0x4
94 )
95
96 type timespec struct {
97         tv_sec  int32
98         tv_nsec int32
99 }
100
101 //go:nosplit
102 func (ts *timespec) setNsec(ns int64) {
103         ts.tv_sec = timediv(ns, 1e9, &ts.tv_nsec)
104 }
105
106 type timeval struct {
107         tv_sec  int32
108         tv_usec int32
109 }
110
111 //go:nosplit
112 func (tv *timeval) set_usec(x int32) {
113         tv.tv_usec = x
114 }
115
116 type sigactiont struct {
117         sa_flags   uint32
118         sa_handler uintptr
119         sa_mask    [4]uint32
120         // linux header does not have sa_restorer field,
121         // but it is used in setsig(). it is no harm to put it here
122         sa_restorer uintptr
123 }
124
125 type siginfoFields struct {
126         si_signo int32
127         si_code  int32
128         si_errno int32
129         // below here is a union; si_addr is the only field we use
130         si_addr uint32
131 }
132
133 type siginfo struct {
134         siginfoFields
135
136         // Pad struct to the max size in the kernel.
137         _ [_si_max_size - unsafe.Sizeof(siginfoFields{})]byte
138 }
139
140 type itimerspec struct {
141         it_interval timespec
142         it_value    timespec
143 }
144
145 type itimerval struct {
146         it_interval timeval
147         it_value    timeval
148 }
149
150 type sigeventFields struct {
151         value  uintptr
152         signo  int32
153         notify int32
154         // below here is a union; sigev_notify_thread_id is the only field we use
155         sigev_notify_thread_id int32
156 }
157
158 type sigevent struct {
159         sigeventFields
160
161         // Pad struct to the max size in the kernel.
162         _ [_sigev_max_size - unsafe.Sizeof(sigeventFields{})]byte
163 }
164
165 const (
166         _O_RDONLY    = 0x0
167         _O_WRONLY    = 0x1
168         _O_NONBLOCK  = 0x80
169         _O_CREAT     = 0x100
170         _O_TRUNC     = 0x200
171         _O_CLOEXEC   = 0x80000
172         _SA_RESTORER = 0
173 )
174
175 type stackt struct {
176         ss_sp    *byte
177         ss_size  uintptr
178         ss_flags int32
179 }
180
181 type sigcontext struct {
182         sc_regmask   uint32
183         sc_status    uint32
184         sc_pc        uint64
185         sc_regs      [32]uint64
186         sc_fpregs    [32]uint64
187         sc_acx       uint32
188         sc_fpc_csr   uint32
189         sc_fpc_eir   uint32
190         sc_used_math uint32
191         sc_dsp       uint32
192         sc_mdhi      uint64
193         sc_mdlo      uint64
194         sc_hi1       uint32
195         sc_lo1       uint32
196         sc_hi2       uint32
197         sc_lo2       uint32
198         sc_hi3       uint32
199         sc_lo3       uint32
200 }
201
202 type ucontext struct {
203         uc_flags    uint32
204         uc_link     *ucontext
205         uc_stack    stackt
206         Pad_cgo_0   [4]byte
207         uc_mcontext sigcontext
208         uc_sigmask  [4]uint32
209 }