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/* 8Input to cgo -godefs 9GOARCH=ppc64 go tool cgo -godefs defs_aix.go > defs_aix_ppc64_tmp.go 10 11This is only a helper to create defs_aix_ppc64.go 12Go runtime functions require the "linux" name of fields (ss_sp, si_addr, etc) 13However, AIX structures don't provide such names and must be modified. 14 15TODO(aix): create a script to automatise defs_aix creation. 16 17Modifications 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 33package 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*/ 50import "C" 51 52const ( 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 152type sigset C.sigset_t 153type siginfo C.siginfo_t 154type timespec C.struct_timespec 155type timestruc C.struct_timestruc_t 156type timeval C.struct_timeval 157type itimerval C.struct_itimerval 158 159type stackt C.stack_t 160type sigcontext C.struct_sigcontext 161type ucontext C.ucontext_t 162type _Ctype_struct___extctx uint64 // ucontext use a pointer to this structure but it shouldn't be used 163type jmpbuf C.struct___jmpbuf 164type context64 C.struct___context64 165type sigactiont C.struct_sigaction 166type tstate C.struct_tstate 167type rusage C.struct_rusage 168 169type pthread C.pthread_t 170type pthread_attr C.pthread_attr_t 171 172type semt C.sem_t 173