| // 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 | 
 |  | 
 | 	_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 |