blob: 2f28e534689bb341e871d8f789f1ddacfead44d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build ignore
/*
Input to cgo -godefs
GOARCH=ppc64 go tool cgo -godefs defs_aix.go > defs_aix_ppc64_tmp.go
This is only a helper to create defs_aix_ppc64.go
Go runtime functions require the "linux" name of fields (ss_sp, si_addr, etc)
However, AIX structures don't provide such names and must be modified.
TODO(aix): create a script to automatise defs_aix creation.
Modifications made:
- sigset replaced by a [4]uint64 array
- add sigset_all variable
- siginfo.si_addr uintptr instead of *byte
- add (*timeval) set_usec
- stackt.ss_sp uintptr instead of *byte
- stackt.ss_size uintptr instead of uint64
- sigcontext.sc_jmpbuf context64 instead of jumbuf
- ucontext.__extctx is a uintptr because we don't need extctx struct
- ucontext.uc_mcontext: replace jumbuf structure by context64 structure
- sigaction.sa_handler represents union field as both are uintptr
- tstate.* replace *byte by uintptr
*/
package runtime
/*
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/time.h>
#include <sys/signal.h>
#include <sys/mman.h>
#include <sys/thread.h>
#include <sys/resource.h>
#include <unistd.h>
#include <fcntl.h>
#include <pthread.h>
#include <semaphore.h>
*/
import "C"
const (
_EPERM = C.EPERM
_ENOENT = C.ENOENT
_EINTR = C.EINTR
_EAGAIN = C.EAGAIN
_ENOMEM = C.ENOMEM
_EACCES = C.EACCES
_EFAULT = C.EFAULT
_EINVAL = C.EINVAL
_ETIMEDOUT = C.ETIMEDOUT
_PROT_NONE = C.PROT_NONE
_PROT_READ = C.PROT_READ
_PROT_WRITE = C.PROT_WRITE
_PROT_EXEC = C.PROT_EXEC
_MAP_ANON = C.MAP_ANONYMOUS
_MAP_PRIVATE = C.MAP_PRIVATE
_MAP_FIXED = C.MAP_FIXED
_MADV_DONTNEED = C.MADV_DONTNEED
_SIGHUP = C.SIGHUP
_SIGINT = C.SIGINT
_SIGQUIT = C.SIGQUIT
_SIGILL = C.SIGILL
_SIGTRAP = C.SIGTRAP
_SIGABRT = C.SIGABRT
_SIGBUS = C.SIGBUS
_SIGFPE = C.SIGFPE
_SIGKILL = C.SIGKILL
_SIGUSR1 = C.SIGUSR1
_SIGSEGV = C.SIGSEGV
_SIGUSR2 = C.SIGUSR2
_SIGPIPE = C.SIGPIPE
_SIGALRM = C.SIGALRM
_SIGCHLD = C.SIGCHLD
_SIGCONT = C.SIGCONT
_SIGSTOP = C.SIGSTOP
_SIGTSTP = C.SIGTSTP
_SIGTTIN = C.SIGTTIN
_SIGTTOU = C.SIGTTOU
_SIGURG = C.SIGURG
_SIGXCPU = C.SIGXCPU
_SIGXFSZ = C.SIGXFSZ
_SIGVTALRM = C.SIGVTALRM
_SIGPROF = C.SIGPROF
_SIGWINCH = C.SIGWINCH
_SIGIO = C.SIGIO
_SIGPWR = C.SIGPWR
_SIGSYS = C.SIGSYS
_SIGTERM = C.SIGTERM
_SIGEMT = C.SIGEMT
_SIGWAITING = C.SIGWAITING
_FPE_INTDIV = C.FPE_INTDIV
_FPE_INTOVF = C.FPE_INTOVF
_FPE_FLTDIV = C.FPE_FLTDIV
_FPE_FLTOVF = C.FPE_FLTOVF
_FPE_FLTUND = C.FPE_FLTUND
_FPE_FLTRES = C.FPE_FLTRES
_FPE_FLTINV = C.FPE_FLTINV
_FPE_FLTSUB = C.FPE_FLTSUB
_BUS_ADRALN = C.BUS_ADRALN
_BUS_ADRERR = C.BUS_ADRERR
_BUS_OBJERR = C.BUS_OBJERR
_SEGV_MAPERR = C.SEGV_MAPERR
_SEGV_ACCERR = C.SEGV_ACCERR
_ITIMER_REAL = C.ITIMER_REAL
_ITIMER_VIRTUAL = C.ITIMER_VIRTUAL
_ITIMER_PROF = C.ITIMER_PROF
_O_RDONLY = C.O_RDONLY
_O_WRONLY = C.O_WRONLY
_O_NONBLOCK = C.O_NONBLOCK
_O_CREAT = C.O_CREAT
_O_TRUNC = C.O_TRUNC
_SS_DISABLE = C.SS_DISABLE
_SI_USER = C.SI_USER
_SIG_BLOCK = C.SIG_BLOCK
_SIG_UNBLOCK = C.SIG_UNBLOCK
_SIG_SETMASK = C.SIG_SETMASK
_SA_SIGINFO = C.SA_SIGINFO
_SA_RESTART = C.SA_RESTART
_SA_ONSTACK = C.SA_ONSTACK
_PTHREAD_CREATE_DETACHED = C.PTHREAD_CREATE_DETACHED
__SC_PAGE_SIZE = C._SC_PAGE_SIZE
__SC_NPROCESSORS_ONLN = C._SC_NPROCESSORS_ONLN
_F_SETFL = C.F_SETFL
_F_GETFD = C.F_GETFD
_F_GETFL = C.F_GETFL
)
type sigset C.sigset_t
type siginfo C.siginfo_t
type timespec C.struct_timespec
type timestruc C.struct_timestruc_t
type timeval C.struct_timeval
type itimerval C.struct_itimerval
type stackt C.stack_t
type sigcontext C.struct_sigcontext
type ucontext C.ucontext_t
type _Ctype_struct___extctx uint64 // ucontext use a pointer to this structure but it shouldn't be used
type jmpbuf C.struct___jmpbuf
type context64 C.struct___context64
type sigactiont C.struct_sigaction
type tstate C.struct_tstate
type rusage C.struct_rusage
type pthread C.pthread_t
type pthread_attr C.pthread_attr_t
type semt C.sem_t
|