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