// 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_ANONYMOUS = 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