|  | // 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. | 
|  |  | 
|  | // +build ignore | 
|  |  | 
|  | /* | 
|  | Input to cgo -godefs | 
|  | GOARCH=ppc64 go tool cgo -godefs defs_aix.go > defs_aix_ppc64_tmp.go | 
|  |  | 
|  | This is only an 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_NONBLOCK = C.O_NONBLOCK | 
|  |  | 
|  | _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_SETFD    = C.F_SETFD | 
|  | _F_SETFL    = C.F_SETFL | 
|  | _F_GETFD    = C.F_GETFD | 
|  | _F_GETFL    = C.F_GETFL | 
|  | _FD_CLOEXEC = C.FD_CLOEXEC | 
|  | ) | 
|  |  | 
|  | 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 |