diff options
| author | Russ Cox <rsc@golang.org> | 2011-11-10 19:08:28 -0500 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2011-11-10 19:08:28 -0500 |
| commit | dd2abe51526867b7574a10708a028a24a3a41ad9 (patch) | |
| tree | d47e6e688566e57e814f38e7d21c14ccd7c44afe /src/pkg/runtime/linux | |
| parent | 879a1c6a724636969d9977bcf649b9bd9e92b6c3 (diff) | |
| download | go-dd2abe51526867b7574a10708a028a24a3a41ad9.tar.xz | |
runtime, syscall: convert from godefs to cgo
R=golang-dev, mikioh.mikioh, r
CC=golang-dev
https://golang.org/cl/5348052
Diffstat (limited to 'src/pkg/runtime/linux')
| -rw-r--r-- | src/pkg/runtime/linux/386/defs.h | 316 | ||||
| -rw-r--r-- | src/pkg/runtime/linux/amd64/defs.h | 372 | ||||
| -rw-r--r-- | src/pkg/runtime/linux/defs.c | 95 | ||||
| -rw-r--r-- | src/pkg/runtime/linux/defs.go | 100 | ||||
| -rw-r--r-- | src/pkg/runtime/linux/defs1.c | 24 | ||||
| -rw-r--r-- | src/pkg/runtime/linux/defs1.go | 35 | ||||
| -rw-r--r-- | src/pkg/runtime/linux/defs2.c | 120 | ||||
| -rw-r--r-- | src/pkg/runtime/linux/defs2.go | 121 | ||||
| -rw-r--r-- | src/pkg/runtime/linux/defs_arm.c | 122 | ||||
| -rw-r--r-- | src/pkg/runtime/linux/defs_arm.go | 121 |
10 files changed, 718 insertions, 708 deletions
diff --git a/src/pkg/runtime/linux/386/defs.h b/src/pkg/runtime/linux/386/defs.h index 73fe23ef98..19d6d9eec5 100644 --- a/src/pkg/runtime/linux/386/defs.h +++ b/src/pkg/runtime/linux/386/defs.h @@ -1,191 +1,189 @@ -// godefs -f -m32 -f -I/home/rsc/pub/linux-2.6/arch/x86/include -f -I/home/rsc/pub/linux-2.6/include -f -D_LOOSE_KERNEL_NAMES -f -D__ARCH_SI_UID_T=__kernel_uid32_t defs2.c +// Created by cgo -cdefs - DO NOT EDIT +// cgo -cdefs defs2.go -// MACHINE GENERATED - DO NOT EDIT. -// Constants enum { - PROT_NONE = 0, - PROT_READ = 0x1, - PROT_WRITE = 0x2, - PROT_EXEC = 0x4, - MAP_ANON = 0x20, - MAP_PRIVATE = 0x2, - MAP_FIXED = 0x10, - SA_RESTART = 0x10000000, - SA_ONSTACK = 0x8000000, - SA_RESTORER = 0x4000000, - SA_SIGINFO = 0x4, - SIGHUP = 0x1, - SIGINT = 0x2, - SIGQUIT = 0x3, - SIGILL = 0x4, - SIGTRAP = 0x5, - SIGABRT = 0x6, - SIGBUS = 0x7, - SIGFPE = 0x8, - SIGKILL = 0x9, - SIGUSR1 = 0xa, - SIGSEGV = 0xb, - SIGUSR2 = 0xc, - SIGPIPE = 0xd, - SIGALRM = 0xe, - SIGSTKFLT = 0x10, - SIGCHLD = 0x11, - SIGCONT = 0x12, - SIGSTOP = 0x13, - SIGTSTP = 0x14, - SIGTTIN = 0x15, - SIGTTOU = 0x16, - SIGURG = 0x17, - SIGXCPU = 0x18, - SIGXFSZ = 0x19, - SIGVTALRM = 0x1a, - SIGPROF = 0x1b, - SIGWINCH = 0x1c, - SIGIO = 0x1d, - SIGPWR = 0x1e, - SIGSYS = 0x1f, - FPE_INTDIV = 0x1, - FPE_INTOVF = 0x2, - FPE_FLTDIV = 0x3, - FPE_FLTOVF = 0x4, - FPE_FLTUND = 0x5, - FPE_FLTRES = 0x6, - FPE_FLTINV = 0x7, - FPE_FLTSUB = 0x8, - BUS_ADRALN = 0x1, - BUS_ADRERR = 0x2, - BUS_OBJERR = 0x3, - SEGV_MAPERR = 0x1, - SEGV_ACCERR = 0x2, - ITIMER_REAL = 0, - ITIMER_VIRTUAL = 0x1, - ITIMER_PROF = 0x2, - O_RDONLY = 0, - O_CLOEXEC = 02000000, + PROT_NONE = 0x0, + PROT_READ = 0x1, + PROT_WRITE = 0x2, + PROT_EXEC = 0x4, + + MAP_ANON = 0x20, + MAP_PRIVATE = 0x2, + MAP_FIXED = 0x10, + + SA_RESTART = 0x10000000, + SA_ONSTACK = 0x8000000, + SA_RESTORER = 0x4000000, + SA_SIGINFO = 0x4, + + SIGHUP = 0x1, + SIGINT = 0x2, + SIGQUIT = 0x3, + SIGILL = 0x4, + SIGTRAP = 0x5, + SIGABRT = 0x6, + SIGBUS = 0x7, + SIGFPE = 0x8, + SIGKILL = 0x9, + SIGUSR1 = 0xa, + SIGSEGV = 0xb, + SIGUSR2 = 0xc, + SIGPIPE = 0xd, + SIGALRM = 0xe, + SIGSTKFLT = 0x10, + SIGCHLD = 0x11, + SIGCONT = 0x12, + SIGSTOP = 0x13, + SIGTSTP = 0x14, + SIGTTIN = 0x15, + SIGTTOU = 0x16, + SIGURG = 0x17, + SIGXCPU = 0x18, + SIGXFSZ = 0x19, + SIGVTALRM = 0x1a, + SIGPROF = 0x1b, + SIGWINCH = 0x1c, + SIGIO = 0x1d, + SIGPWR = 0x1e, + SIGSYS = 0x1f, + + FPE_INTDIV = 0x1, + FPE_INTOVF = 0x2, + FPE_FLTDIV = 0x3, + FPE_FLTOVF = 0x4, + FPE_FLTUND = 0x5, + FPE_FLTRES = 0x6, + FPE_FLTINV = 0x7, + FPE_FLTSUB = 0x8, + + BUS_ADRALN = 0x1, + BUS_ADRERR = 0x2, + BUS_OBJERR = 0x3, + + SEGV_MAPERR = 0x1, + SEGV_ACCERR = 0x2, + + ITIMER_REAL = 0x0, + ITIMER_VIRTUAL = 0x1, + ITIMER_PROF = 0x2, + + O_RDONLY = 0x0, + O_CLOEXEC = 0x80000, }; -// Types +typedef struct Fpreg Fpreg; +typedef struct Fpxreg Fpxreg; +typedef struct Xmmreg Xmmreg; +typedef struct Fpstate Fpstate; +typedef struct Timespec Timespec; +typedef struct Timeval Timeval; +typedef struct Sigaction Sigaction; +typedef struct Siginfo Siginfo; +typedef struct Sigaltstack Sigaltstack; +typedef struct Sigcontext Sigcontext; +typedef struct Ucontext Ucontext; +typedef struct Itimerval Itimerval; + #pragma pack on -typedef struct Fpreg Fpreg; struct Fpreg { - uint16 significand[4]; - uint16 exponent; + uint16 significand[4]; + uint16 exponent; }; - -typedef struct Fpxreg Fpxreg; struct Fpxreg { - uint16 significand[4]; - uint16 exponent; - uint16 padding[3]; + uint16 significand[4]; + uint16 exponent; + uint16 padding[3]; }; - -typedef struct Xmmreg Xmmreg; struct Xmmreg { - uint32 element[4]; + uint32 element[4]; }; - -typedef struct Fpstate Fpstate; struct Fpstate { - uint32 cw; - uint32 sw; - uint32 tag; - uint32 ipoff; - uint32 cssel; - uint32 dataoff; - uint32 datasel; - Fpreg _st[8]; - uint16 status; - uint16 magic; - uint32 _fxsr_env[6]; - uint32 mxcsr; - uint32 reserved; - Fpxreg _fxsr_st[8]; - Xmmreg _xmm[8]; - uint32 padding1[44]; - byte Pad_godefs_0[48]; + uint32 cw; + uint32 sw; + uint32 tag; + uint32 ipoff; + uint32 cssel; + uint32 dataoff; + uint32 datasel; + Fpreg _st[8]; + uint16 status; + uint16 magic; + uint32 _fxsr_env[6]; + uint32 mxcsr; + uint32 reserved; + Fpxreg _fxsr_st[8]; + Xmmreg _xmm[8]; + uint32 padding1[44]; + byte anon0[48]; }; - -typedef struct Timespec Timespec; struct Timespec { - int32 tv_sec; - int32 tv_nsec; + int32 tv_sec; + int32 tv_nsec; }; - -typedef struct Timeval Timeval; struct Timeval { - int32 tv_sec; - int32 tv_usec; + int32 tv_sec; + int32 tv_usec; }; - -typedef struct Sigaction Sigaction; struct Sigaction { - void *k_sa_handler; - uint32 sa_flags; - void *sa_restorer; - uint32 sa_mask; + void *k_sa_handler; + uint32 sa_flags; + void *sa_restorer; + uint32 sa_mask; }; - -typedef struct Siginfo Siginfo; struct Siginfo { - int32 si_signo; - int32 si_errno; - int32 si_code; - byte _sifields[116]; + int32 si_signo; + int32 si_errno; + int32 si_code; + byte _sifields[116]; }; - -typedef struct Sigaltstack Sigaltstack; struct Sigaltstack { - void *ss_sp; - int32 ss_flags; - uint32 ss_size; + byte *ss_sp; + int32 ss_flags; + uint32 ss_size; }; - -typedef struct Sigcontext Sigcontext; struct Sigcontext { - uint16 gs; - uint16 __gsh; - uint16 fs; - uint16 __fsh; - uint16 es; - uint16 __esh; - uint16 ds; - uint16 __dsh; - uint32 edi; - uint32 esi; - uint32 ebp; - uint32 esp; - uint32 ebx; - uint32 edx; - uint32 ecx; - uint32 eax; - uint32 trapno; - uint32 err; - uint32 eip; - uint16 cs; - uint16 __csh; - uint32 eflags; - uint32 esp_at_signal; - uint16 ss; - uint16 __ssh; - Fpstate *fpstate; - uint32 oldmask; - uint32 cr2; + uint16 gs; + uint16 __gsh; + uint16 fs; + uint16 __fsh; + uint16 es; + uint16 __esh; + uint16 ds; + uint16 __dsh; + uint32 edi; + uint32 esi; + uint32 ebp; + uint32 esp; + uint32 ebx; + uint32 edx; + uint32 ecx; + uint32 eax; + uint32 trapno; + uint32 err; + uint32 eip; + uint16 cs; + uint16 __csh; + uint32 eflags; + uint32 esp_at_signal; + uint16 ss; + uint16 __ssh; + Fpstate *fpstate; + uint32 oldmask; + uint32 cr2; }; - -typedef struct Ucontext Ucontext; struct Ucontext { - uint32 uc_flags; - Ucontext *uc_link; - Sigaltstack uc_stack; - Sigcontext uc_mcontext; - uint32 uc_sigmask; + uint32 uc_flags; + Ucontext *uc_link; + Sigaltstack uc_stack; + Sigcontext uc_mcontext; + uint32 uc_sigmask; }; - -typedef struct Itimerval Itimerval; struct Itimerval { - Timeval it_interval; - Timeval it_value; + Timeval it_interval; + Timeval it_value; }; + + #pragma pack off diff --git a/src/pkg/runtime/linux/amd64/defs.h b/src/pkg/runtime/linux/amd64/defs.h index 8053dd16fe..5b44a78530 100644 --- a/src/pkg/runtime/linux/amd64/defs.h +++ b/src/pkg/runtime/linux/amd64/defs.h @@ -1,236 +1,232 @@ -// godefs -f -m64 defs.c +// Created by cgo -cdefs - DO NOT EDIT +// cgo -cdefs defs.go defs1.go -// MACHINE GENERATED - DO NOT EDIT. -// Constants enum { - PROT_NONE = 0, - PROT_READ = 0x1, - PROT_WRITE = 0x2, - PROT_EXEC = 0x4, - MAP_ANON = 0x20, - MAP_PRIVATE = 0x2, - MAP_FIXED = 0x10, - SA_RESTART = 0x10000000, - SA_ONSTACK = 0x8000000, - SA_RESTORER = 0x4000000, - SA_SIGINFO = 0x4, - SIGHUP = 0x1, - SIGINT = 0x2, - SIGQUIT = 0x3, - SIGILL = 0x4, - SIGTRAP = 0x5, - SIGABRT = 0x6, - SIGBUS = 0x7, - SIGFPE = 0x8, - SIGKILL = 0x9, - SIGUSR1 = 0xa, - SIGSEGV = 0xb, - SIGUSR2 = 0xc, - SIGPIPE = 0xd, - SIGALRM = 0xe, - SIGSTKFLT = 0x10, - SIGCHLD = 0x11, - SIGCONT = 0x12, - SIGSTOP = 0x13, - SIGTSTP = 0x14, - SIGTTIN = 0x15, - SIGTTOU = 0x16, - SIGURG = 0x17, - SIGXCPU = 0x18, - SIGXFSZ = 0x19, - SIGVTALRM = 0x1a, - SIGPROF = 0x1b, - SIGWINCH = 0x1c, - SIGIO = 0x1d, - SIGPWR = 0x1e, - SIGSYS = 0x1f, - FPE_INTDIV = 0x1, - FPE_INTOVF = 0x2, - FPE_FLTDIV = 0x3, - FPE_FLTOVF = 0x4, - FPE_FLTUND = 0x5, - FPE_FLTRES = 0x6, - FPE_FLTINV = 0x7, - FPE_FLTSUB = 0x8, - BUS_ADRALN = 0x1, - BUS_ADRERR = 0x2, - BUS_OBJERR = 0x3, - SEGV_MAPERR = 0x1, - SEGV_ACCERR = 0x2, - ITIMER_REAL = 0, - ITIMER_VIRTUAL = 0x1, - ITIMER_PROF = 0x2, - O_RDONLY = 0, - O_CLOEXEC = 02000000, + PROT_NONE = 0x0, + PROT_READ = 0x1, + PROT_WRITE = 0x2, + PROT_EXEC = 0x4, + + MAP_ANON = 0x20, + MAP_PRIVATE = 0x2, + MAP_FIXED = 0x10, + + SA_RESTART = 0x10000000, + SA_ONSTACK = 0x8000000, + SA_RESTORER = 0x4000000, + SA_SIGINFO = 0x4, + + SIGHUP = 0x1, + SIGINT = 0x2, + SIGQUIT = 0x3, + SIGILL = 0x4, + SIGTRAP = 0x5, + SIGABRT = 0x6, + SIGBUS = 0x7, + SIGFPE = 0x8, + SIGKILL = 0x9, + SIGUSR1 = 0xa, + SIGSEGV = 0xb, + SIGUSR2 = 0xc, + SIGPIPE = 0xd, + SIGALRM = 0xe, + SIGSTKFLT = 0x10, + SIGCHLD = 0x11, + SIGCONT = 0x12, + SIGSTOP = 0x13, + SIGTSTP = 0x14, + SIGTTIN = 0x15, + SIGTTOU = 0x16, + SIGURG = 0x17, + SIGXCPU = 0x18, + SIGXFSZ = 0x19, + SIGVTALRM = 0x1a, + SIGPROF = 0x1b, + SIGWINCH = 0x1c, + SIGIO = 0x1d, + SIGPWR = 0x1e, + SIGSYS = 0x1f, + + FPE_INTDIV = 0x1, + FPE_INTOVF = 0x2, + FPE_FLTDIV = 0x3, + FPE_FLTOVF = 0x4, + FPE_FLTUND = 0x5, + FPE_FLTRES = 0x6, + FPE_FLTINV = 0x7, + FPE_FLTSUB = 0x8, + + BUS_ADRALN = 0x1, + BUS_ADRERR = 0x2, + BUS_OBJERR = 0x3, + + SEGV_MAPERR = 0x1, + SEGV_ACCERR = 0x2, + + ITIMER_REAL = 0x0, + ITIMER_VIRTUAL = 0x1, + ITIMER_PROF = 0x2, }; -// Types +typedef struct Timespec Timespec; +typedef struct Timeval Timeval; +typedef struct Sigaction Sigaction; +typedef struct Siginfo Siginfo; +typedef struct Itimerval Itimerval; + #pragma pack on -typedef struct Timespec Timespec; struct Timespec { - int64 tv_sec; - int64 tv_nsec; + int64 tv_sec; + int64 tv_nsec; }; - -typedef struct Timeval Timeval; struct Timeval { - int64 tv_sec; - int64 tv_usec; + int64 tv_sec; + int64 tv_usec; }; - -typedef struct Sigaction Sigaction; struct Sigaction { - void *sa_handler; - uint64 sa_flags; - void *sa_restorer; - uint64 sa_mask; + void *sa_handler; + uint64 sa_flags; + void *sa_restorer; + uint64 sa_mask; }; - -typedef struct Siginfo Siginfo; struct Siginfo { - int32 si_signo; - int32 si_errno; - int32 si_code; - byte pad_godefs_0[4]; - byte _sifields[112]; + int32 si_signo; + int32 si_errno; + int32 si_code; + byte Pad_godefs_0[4]; + byte _sifields[112]; }; - -typedef struct Itimerval Itimerval; struct Itimerval { - Timeval it_interval; - Timeval it_value; + Timeval it_interval; + Timeval it_value; }; + + #pragma pack off -// godefs -f -m64 defs1.c +// Created by cgo -cdefs - DO NOT EDIT +// cgo -cdefs defs.go defs1.go -// MACHINE GENERATED - DO NOT EDIT. -// Constants +enum { + O_RDONLY = 0x0, + O_CLOEXEC = 0x80000, +}; + +typedef struct Usigset Usigset; +typedef struct Fpxreg Fpxreg; +typedef struct Xmmreg Xmmreg; +typedef struct Fpstate Fpstate; +typedef struct Fpxreg1 Fpxreg1; +typedef struct Xmmreg1 Xmmreg1; +typedef struct Fpstate1 Fpstate1; +typedef struct Fpreg1 Fpreg1; +typedef struct Sigaltstack Sigaltstack; +typedef struct Mcontext Mcontext; +typedef struct Ucontext Ucontext; +typedef struct Sigcontext Sigcontext; -// Types #pragma pack on -typedef struct Usigset Usigset; struct Usigset { - uint64 __val[16]; + uint64 __val[16]; }; - -typedef struct Fpxreg Fpxreg; struct Fpxreg { - uint16 significand[4]; - uint16 exponent; - uint16 padding[3]; + uint16 significand[4]; + uint16 exponent; + uint16 padding[3]; }; - -typedef struct Xmmreg Xmmreg; struct Xmmreg { - uint32 element[4]; + uint32 element[4]; }; - -typedef struct Fpstate Fpstate; struct Fpstate { - uint16 cwd; - uint16 swd; - uint16 ftw; - uint16 fop; - uint64 rip; - uint64 rdp; - uint32 mxcsr; - uint32 mxcr_mask; - Fpxreg _st[8]; - Xmmreg _xmm[16]; - uint32 padding[24]; + uint16 cwd; + uint16 swd; + uint16 ftw; + uint16 fop; + uint64 rip; + uint64 rdp; + uint32 mxcsr; + uint32 mxcr_mask; + Fpxreg _st[8]; + Xmmreg _xmm[16]; + uint32 padding[24]; }; - -typedef struct Fpxreg1 Fpxreg1; struct Fpxreg1 { - uint16 significand[4]; - uint16 exponent; - uint16 padding[3]; + uint16 significand[4]; + uint16 exponent; + uint16 padding[3]; }; - -typedef struct Xmmreg1 Xmmreg1; struct Xmmreg1 { - uint32 element[4]; + uint32 element[4]; }; - -typedef struct Fpstate1 Fpstate1; struct Fpstate1 { - uint16 cwd; - uint16 swd; - uint16 ftw; - uint16 fop; - uint64 rip; - uint64 rdp; - uint32 mxcsr; - uint32 mxcr_mask; - Fpxreg1 _st[8]; - Xmmreg1 _xmm[16]; - uint32 padding[24]; + uint16 cwd; + uint16 swd; + uint16 ftw; + uint16 fop; + uint64 rip; + uint64 rdp; + uint32 mxcsr; + uint32 mxcr_mask; + Fpxreg1 _st[8]; + Xmmreg1 _xmm[16]; + uint32 padding[24]; }; - -typedef struct Fpreg1 Fpreg1; struct Fpreg1 { - uint16 significand[4]; - uint16 exponent; + uint16 significand[4]; + uint16 exponent; }; - -typedef struct Sigaltstack Sigaltstack; struct Sigaltstack { - void *ss_sp; - int32 ss_flags; - byte pad_godefs_0[4]; - uint64 ss_size; + byte *ss_sp; + int32 ss_flags; + byte Pad_godefs_0[4]; + uint64 ss_size; }; - -typedef struct Mcontext Mcontext; struct Mcontext { - int64 gregs[23]; - Fpstate *fpregs; - uint64 __reserved1[8]; + int64 gregs[23]; + Fpstate *fpregs; + uint64 __reserved1[8]; }; - -typedef struct Ucontext Ucontext; struct Ucontext { - uint64 uc_flags; - Ucontext *uc_link; - Sigaltstack uc_stack; - Mcontext uc_mcontext; - Usigset uc_sigmask; - Fpstate __fpregs_mem; + uint64 uc_flags; + Ucontext *uc_link; + Sigaltstack uc_stack; + Mcontext uc_mcontext; + Usigset uc_sigmask; + Fpstate __fpregs_mem; }; - -typedef struct Sigcontext Sigcontext; struct Sigcontext { - uint64 r8; - uint64 r9; - uint64 r10; - uint64 r11; - uint64 r12; - uint64 r13; - uint64 r14; - uint64 r15; - uint64 rdi; - uint64 rsi; - uint64 rbp; - uint64 rbx; - uint64 rdx; - uint64 rax; - uint64 rcx; - uint64 rsp; - uint64 rip; - uint64 eflags; - uint16 cs; - uint16 gs; - uint16 fs; - uint16 __pad0; - uint64 err; - uint64 trapno; - uint64 oldmask; - uint64 cr2; - Fpstate1 *fpstate; - uint64 __reserved1[8]; + uint64 r8; + uint64 r9; + uint64 r10; + uint64 r11; + uint64 r12; + uint64 r13; + uint64 r14; + uint64 r15; + uint64 rdi; + uint64 rsi; + uint64 rbp; + uint64 rbx; + uint64 rdx; + uint64 rax; + uint64 rcx; + uint64 rsp; + uint64 rip; + uint64 eflags; + uint16 cs; + uint16 gs; + uint16 fs; + uint16 __pad0; + uint64 err; + uint64 trapno; + uint64 oldmask; + uint64 cr2; + Fpstate1 *fpstate; + uint64 __reserved1[8]; }; + + #pragma pack off diff --git a/src/pkg/runtime/linux/defs.c b/src/pkg/runtime/linux/defs.c deleted file mode 100644 index 5dda787891..0000000000 --- a/src/pkg/runtime/linux/defs.c +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright 2009 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. - -/* - * Input to godefs - godefs -f -m64 defs.c >amd64/defs.h - godefs -f -m64 defs1.c >>amd64/defs.h - */ - -// Linux glibc and Linux kernel define different and conflicting -// definitions for struct sigaction, struct timespec, etc. -// We want the kernel ones, which are in the asm/* headers. -// But then we'd get conflicts when we include the system -// headers for things like ucontext_t, so that happens in -// a separate file, defs1.c. - -#include <asm/posix_types.h> -#define size_t __kernel_size_t -#include <asm/signal.h> -#include <asm/siginfo.h> -#include <asm/mman.h> - -enum { - $PROT_NONE = PROT_NONE, - $PROT_READ = PROT_READ, - $PROT_WRITE = PROT_WRITE, - $PROT_EXEC = PROT_EXEC, - - $MAP_ANON = MAP_ANONYMOUS, - $MAP_PRIVATE = MAP_PRIVATE, - $MAP_FIXED = MAP_FIXED, - - $SA_RESTART = SA_RESTART, - $SA_ONSTACK = SA_ONSTACK, - $SA_RESTORER = SA_RESTORER, - $SA_SIGINFO = SA_SIGINFO, - - $SIGHUP = SIGHUP, - $SIGINT = SIGINT, - $SIGQUIT = SIGQUIT, - $SIGILL = SIGILL, - $SIGTRAP = SIGTRAP, - $SIGABRT = SIGABRT, - $SIGBUS = SIGBUS, - $SIGFPE = SIGFPE, - $SIGKILL = SIGKILL, - $SIGUSR1 = SIGUSR1, - $SIGSEGV = SIGSEGV, - $SIGUSR2 = SIGUSR2, - $SIGPIPE = SIGPIPE, - $SIGALRM = SIGALRM, - $SIGSTKFLT = SIGSTKFLT, - $SIGCHLD = SIGCHLD, - $SIGCONT = SIGCONT, - $SIGSTOP = SIGSTOP, - $SIGTSTP = SIGTSTP, - $SIGTTIN = SIGTTIN, - $SIGTTOU = SIGTTOU, - $SIGURG = SIGURG, - $SIGXCPU = SIGXCPU, - $SIGXFSZ = SIGXFSZ, - $SIGVTALRM = SIGVTALRM, - $SIGPROF = SIGPROF, - $SIGWINCH = SIGWINCH, - $SIGIO = SIGIO, - $SIGPWR = SIGPWR, - $SIGSYS = SIGSYS, - - $FPE_INTDIV = FPE_INTDIV, - $FPE_INTOVF = FPE_INTOVF, - $FPE_FLTDIV = FPE_FLTDIV, - $FPE_FLTOVF = FPE_FLTOVF, - $FPE_FLTUND = FPE_FLTUND, - $FPE_FLTRES = FPE_FLTRES, - $FPE_FLTINV = FPE_FLTINV, - $FPE_FLTSUB = FPE_FLTSUB, - - $BUS_ADRALN = BUS_ADRALN, - $BUS_ADRERR = BUS_ADRERR, - $BUS_OBJERR = BUS_OBJERR, - - $SEGV_MAPERR = SEGV_MAPERR, - $SEGV_ACCERR = SEGV_ACCERR, - - $ITIMER_REAL = ITIMER_REAL, - $ITIMER_VIRTUAL = ITIMER_VIRTUAL, - $ITIMER_PROF = ITIMER_PROF, -}; - -typedef struct timespec $Timespec; -typedef struct timeval $Timeval; -typedef struct sigaction $Sigaction; -typedef siginfo_t $Siginfo; -typedef struct itimerval $Itimerval; diff --git a/src/pkg/runtime/linux/defs.go b/src/pkg/runtime/linux/defs.go new file mode 100644 index 0000000000..85f99db174 --- /dev/null +++ b/src/pkg/runtime/linux/defs.go @@ -0,0 +1,100 @@ +// Copyright 2009 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. + +/* +Input to cgo -cdefs + +GOARCH=amd64 cgo -cdefs defs.go defs1.go >amd64/defs.h +*/ + +package runtime + +/* +// Linux glibc and Linux kernel define different and conflicting +// definitions for struct sigaction, struct timespec, etc. +// We want the kernel ones, which are in the asm/* headers. +// But then we'd get conflicts when we include the system +// headers for things like ucontext_t, so that happens in +// a separate file, defs1.go. + +#include <asm/posix_types.h> +#define size_t __kernel_size_t +#include <asm/signal.h> +#include <asm/siginfo.h> +#include <asm/mman.h> +*/ +import "C" + +const ( + 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 + + SA_RESTART = C.SA_RESTART + SA_ONSTACK = C.SA_ONSTACK + SA_RESTORER = C.SA_RESTORER + SA_SIGINFO = C.SA_SIGINFO + + 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 + SIGSTKFLT = C.SIGSTKFLT + 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 + + 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 +) + +type Timespec C.struct_timespec +type Timeval C.struct_timeval +type Sigaction C.struct_sigaction +type Siginfo C.siginfo_t +type Itimerval C.struct_itimerval diff --git a/src/pkg/runtime/linux/defs1.c b/src/pkg/runtime/linux/defs1.c deleted file mode 100644 index e737f8e9ef..0000000000 --- a/src/pkg/runtime/linux/defs1.c +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 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. - -/* - * Input to godefs - godefs -f -m64 defs.c >amd64/defs.h - godefs -f -m64 defs1.c >>amd64/defs.h - */ - -#include <ucontext.h> - -typedef __sigset_t $Usigset; -typedef struct _libc_fpxreg $Fpxreg; -typedef struct _libc_xmmreg $Xmmreg; -typedef struct _libc_fpstate $Fpstate; -typedef struct _fpxreg $Fpxreg1; -typedef struct _xmmreg $Xmmreg1; -typedef struct _fpstate $Fpstate1; -typedef struct _fpreg $Fpreg1; -typedef struct sigaltstack $Sigaltstack; -typedef mcontext_t $Mcontext; -typedef ucontext_t $Ucontext; -typedef struct sigcontext $Sigcontext; diff --git a/src/pkg/runtime/linux/defs1.go b/src/pkg/runtime/linux/defs1.go new file mode 100644 index 0000000000..6d84e84d76 --- /dev/null +++ b/src/pkg/runtime/linux/defs1.go @@ -0,0 +1,35 @@ +// Copyright 2009 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. + +/* +Input to cgo -cdefs + +GOARCH=amd64 cgo -cdefs defs.go defs1.go >amd64/defs.h +*/ + +package runtime + +/* +#include <ucontext.h> +#include <fcntl.h> +*/ +import "C" + +const ( + O_RDONLY = C.O_RDONLY + O_CLOEXEC = C.O_CLOEXEC +) + +type Usigset C.__sigset_t +type Fpxreg C.struct__libc_fpxreg +type Xmmreg C.struct__libc_xmmreg +type Fpstate C.struct__libc_fpstate +type Fpxreg1 C.struct__fpxreg +type Xmmreg1 C.struct__xmmreg +type Fpstate1 C.struct__fpstate +type Fpreg1 C.struct__fpreg +type Sigaltstack C.struct_sigaltstack +type Mcontext C.mcontext_t +type Ucontext C.ucontext_t +type Sigcontext C.struct_sigcontext diff --git a/src/pkg/runtime/linux/defs2.c b/src/pkg/runtime/linux/defs2.c deleted file mode 100644 index ff641fff2b..0000000000 --- a/src/pkg/runtime/linux/defs2.c +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2009 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. - -/* - * Input to godefs - godefs -f -m32 \ - -f -I/home/rsc/pub/linux-2.6/arch/x86/include \ - -f -I/home/rsc/pub/linux-2.6/include \ - -f -D_LOOSE_KERNEL_NAMES \ - -f -D__ARCH_SI_UID_T'='__kernel_uid32_t \ - defs2.c >386/defs.h - - * The asm header tricks we have to use for Linux on amd64 - * (see defs.c and defs1.c) don't work here, so this is yet another - * file. Sigh. - */ - -#include <asm/signal.h> -#include <asm/mman.h> -#include <asm/sigcontext.h> -#include <asm/ucontext.h> -#include <asm/siginfo.h> - -/* -#include <sys/signal.h> -#include <sys/mman.h> -#include <ucontext.h> -*/ - -/* This is the sigaction structure from the Linux 2.1.68 kernel which - is used with the rt_sigaction system call. For 386 this is not - defined in any public header file. */ - -struct kernel_sigaction { - __sighandler_t k_sa_handler; - unsigned long sa_flags; - void (*sa_restorer) (void); - sigset_t sa_mask; -}; - -enum { - $PROT_NONE = PROT_NONE, - $PROT_READ = PROT_READ, - $PROT_WRITE = PROT_WRITE, - $PROT_EXEC = PROT_EXEC, - - $MAP_ANON = MAP_ANONYMOUS, - $MAP_PRIVATE = MAP_PRIVATE, - $MAP_FIXED = MAP_FIXED, - - $SA_RESTART = SA_RESTART, - $SA_ONSTACK = SA_ONSTACK, - $SA_RESTORER = SA_RESTORER, - $SA_SIGINFO = SA_SIGINFO, - - $SIGHUP = SIGHUP, - $SIGINT = SIGINT, - $SIGQUIT = SIGQUIT, - $SIGILL = SIGILL, - $SIGTRAP = SIGTRAP, - $SIGABRT = SIGABRT, - $SIGBUS = SIGBUS, - $SIGFPE = SIGFPE, - $SIGKILL = SIGKILL, - $SIGUSR1 = SIGUSR1, - $SIGSEGV = SIGSEGV, - $SIGUSR2 = SIGUSR2, - $SIGPIPE = SIGPIPE, - $SIGALRM = SIGALRM, - $SIGSTKFLT = SIGSTKFLT, - $SIGCHLD = SIGCHLD, - $SIGCONT = SIGCONT, - $SIGSTOP = SIGSTOP, - $SIGTSTP = SIGTSTP, - $SIGTTIN = SIGTTIN, - $SIGTTOU = SIGTTOU, - $SIGURG = SIGURG, - $SIGXCPU = SIGXCPU, - $SIGXFSZ = SIGXFSZ, - $SIGVTALRM = SIGVTALRM, - $SIGPROF = SIGPROF, - $SIGWINCH = SIGWINCH, - $SIGIO = SIGIO, - $SIGPWR = SIGPWR, - $SIGSYS = SIGSYS, - - $FPE_INTDIV = FPE_INTDIV, - $FPE_INTOVF = FPE_INTOVF, - $FPE_FLTDIV = FPE_FLTDIV, - $FPE_FLTOVF = FPE_FLTOVF, - $FPE_FLTUND = FPE_FLTUND, - $FPE_FLTRES = FPE_FLTRES, - $FPE_FLTINV = FPE_FLTINV, - $FPE_FLTSUB = FPE_FLTSUB, - - $BUS_ADRALN = BUS_ADRALN, - $BUS_ADRERR = BUS_ADRERR, - $BUS_OBJERR = BUS_OBJERR, - - $SEGV_MAPERR = SEGV_MAPERR, - $SEGV_ACCERR = SEGV_ACCERR, - - $ITIMER_REAL = ITIMER_REAL, - $ITIMER_VIRTUAL = ITIMER_VIRTUAL, - $ITIMER_PROF = ITIMER_PROF, -}; - -typedef struct _fpreg $Fpreg; -typedef struct _fpxreg $Fpxreg; -typedef struct _xmmreg $Xmmreg; -typedef struct _fpstate $Fpstate; -typedef struct timespec $Timespec; -typedef struct timeval $Timeval; -typedef struct kernel_sigaction $Sigaction; -typedef siginfo_t $Siginfo; -typedef struct sigaltstack $Sigaltstack; -typedef struct sigcontext $Sigcontext; -typedef struct ucontext $Ucontext; -typedef struct itimerval $Itimerval; diff --git a/src/pkg/runtime/linux/defs2.go b/src/pkg/runtime/linux/defs2.go new file mode 100644 index 0000000000..56da642ed3 --- /dev/null +++ b/src/pkg/runtime/linux/defs2.go @@ -0,0 +1,121 @@ +// Copyright 2009 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. + +/* + * Input to cgo -cdefs + +GOARCH=386 cgo -cdefs defs2.go >386/defs.h + +The asm header tricks we have to use for Linux on amd64 +(see defs.c and defs1.c) don't work here, so this is yet another +file. Sigh. +*/ + +package runtime + +/* +#cgo CFLAGS: -I/home/rsc/pub/linux-2.6/arch/x86/include -I/home/rsc/pub/linux-2.6/include -D_LOOSE_KERNEL_NAMES -D__ARCH_SI_UID_T=__kernel_uid32_t + +#include <asm/signal.h> +#include <asm/mman.h> +#include <asm/sigcontext.h> +#include <asm/ucontext.h> +#include <asm/siginfo.h> +#include <asm-generic/fcntl.h> + +// This is the sigaction structure from the Linux 2.1.68 kernel which +// is used with the rt_sigaction system call. For 386 this is not +// defined in any public header file. + +struct kernel_sigaction { + __sighandler_t k_sa_handler; + unsigned long sa_flags; + void (*sa_restorer) (void); + sigset_t sa_mask; +}; +*/ +import "C" + +const ( + 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 + + SA_RESTART = C.SA_RESTART + SA_ONSTACK = C.SA_ONSTACK + SA_RESTORER = C.SA_RESTORER + SA_SIGINFO = C.SA_SIGINFO + + 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 + SIGSTKFLT = C.SIGSTKFLT + 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 + + 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_CLOEXEC = C.O_CLOEXEC +) + +type Fpreg C.struct__fpreg +type Fpxreg C.struct__fpxreg +type Xmmreg C.struct__xmmreg +type Fpstate C.struct__fpstate +type Timespec C.struct_timespec +type Timeval C.struct_timeval +type Sigaction C.struct_kernel_sigaction +type Siginfo C.siginfo_t +type Sigaltstack C.struct_sigaltstack +type Sigcontext C.struct_sigcontext +type Ucontext C.struct_ucontext +type Itimerval C.struct_itimerval diff --git a/src/pkg/runtime/linux/defs_arm.c b/src/pkg/runtime/linux/defs_arm.c deleted file mode 100644 index 1f935046e2..0000000000 --- a/src/pkg/runtime/linux/defs_arm.c +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2009 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. - -/* - * Input to godefs - * On a Debian Lenny arm linux distribution: - godefs -f-I/usr/src/linux-headers-2.6.26-2-versatile/include defs_arm.c - */ - -#define __ARCH_SI_UID_T int - -#include <asm/signal.h> -#include <asm/mman.h> -#include <asm/sigcontext.h> -#include <asm/ucontext.h> -#include <asm/siginfo.h> -#include <linux/time.h> - -/* -#include <sys/signal.h> -#include <sys/mman.h> -#include <ucontext.h> -*/ - -enum { - $PROT_NONE = PROT_NONE, - $PROT_READ = PROT_READ, - $PROT_WRITE = PROT_WRITE, - $PROT_EXEC = PROT_EXEC, - - $MAP_ANON = MAP_ANONYMOUS, - $MAP_PRIVATE = MAP_PRIVATE, - $MAP_FIXED = MAP_FIXED, - - $SA_RESTART = SA_RESTART, - $SA_ONSTACK = SA_ONSTACK, - $SA_RESTORER = SA_RESTORER, - $SA_SIGINFO = SA_SIGINFO, - - $SIGHUP = SIGHUP, - $SIGINT = SIGINT, - $SIGQUIT = SIGQUIT, - $SIGILL = SIGILL, - $SIGTRAP = SIGTRAP, - $SIGABRT = SIGABRT, - $SIGBUS = SIGBUS, - $SIGFPE = SIGFPE, - $SIGKILL = SIGKILL, - $SIGUSR1 = SIGUSR1, - $SIGSEGV = SIGSEGV, - $SIGUSR2 = SIGUSR2, - $SIGPIPE = SIGPIPE, - $SIGALRM = SIGALRM, - $SIGSTKFLT = SIGSTKFLT, - $SIGCHLD = SIGCHLD, - $SIGCONT = SIGCONT, - $SIGSTOP = SIGSTOP, - $SIGTSTP = SIGTSTP, - $SIGTTIN = SIGTTIN, - $SIGTTOU = SIGTTOU, - $SIGURG = SIGURG, - $SIGXCPU = SIGXCPU, - $SIGXFSZ = SIGXFSZ, - $SIGVTALRM = SIGVTALRM, - $SIGPROF = SIGPROF, - $SIGWINCH = SIGWINCH, - $SIGIO = SIGIO, - $SIGPWR = SIGPWR, - $SIGSYS = SIGSYS, - - $FPE_INTDIV = FPE_INTDIV & 0xFFFF, - $FPE_INTOVF = FPE_INTOVF & 0xFFFF, - $FPE_FLTDIV = FPE_FLTDIV & 0xFFFF, - $FPE_FLTOVF = FPE_FLTOVF & 0xFFFF, - $FPE_FLTUND = FPE_FLTUND & 0xFFFF, - $FPE_FLTRES = FPE_FLTRES & 0xFFFF, - $FPE_FLTINV = FPE_FLTINV & 0xFFFF, - $FPE_FLTSUB = FPE_FLTSUB & 0xFFFF, - - $BUS_ADRALN = BUS_ADRALN & 0xFFFF, - $BUS_ADRERR = BUS_ADRERR & 0xFFFF, - $BUS_OBJERR = BUS_OBJERR & 0xFFFF, - - $SEGV_MAPERR = SEGV_MAPERR & 0xFFFF, - $SEGV_ACCERR = SEGV_ACCERR & 0xFFFF, - - $ITIMER_REAL = ITIMER_REAL, - $ITIMER_PROF = ITIMER_PROF, - $ITIMER_VIRTUAL = ITIMER_VIRTUAL, -}; - -typedef sigset_t $Sigset; -typedef struct timespec $Timespec; -typedef struct sigaltstack $Sigaltstack; -typedef struct sigcontext $Sigcontext; -typedef struct ucontext $Ucontext; -typedef struct timeval $Timeval; -typedef struct itimerval $Itimerval; - -struct xsiginfo { - int si_signo; - int si_errno; - int si_code; - char _sifields[4]; -}; - -typedef struct xsiginfo $Siginfo; - -#undef sa_handler -#undef sa_flags -#undef sa_restorer -#undef sa_mask - -struct xsigaction { - void (*sa_handler)(void); - unsigned long sa_flags; - void (*sa_restorer)(void); - unsigned int sa_mask; /* mask last for extensibility */ -}; - -typedef struct xsigaction $Sigaction; diff --git a/src/pkg/runtime/linux/defs_arm.go b/src/pkg/runtime/linux/defs_arm.go new file mode 100644 index 0000000000..3312d36e54 --- /dev/null +++ b/src/pkg/runtime/linux/defs_arm.go @@ -0,0 +1,121 @@ +// Copyright 2009 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. + +/* +Input to cgo. +On a Debian Lenny arm linux distribution: + +cgo -cdefs defs_arm.c >arm/defs.h +*/ + +package runtime + +/* +#cgo CFLAGS: -I/usr/src/linux-headers-2.6.26-2-versatile/include + +#define __ARCH_SI_UID_T int +#include <asm/signal.h> +#include <asm/mman.h> +#include <asm/sigcontext.h> +#include <asm/ucontext.h> +#include <asm/siginfo.h> +#include <linux/time.h> + +struct xsiginfo { + int si_signo; + int si_errno; + int si_code; + char _sifields[4]; +}; + +#undef sa_handler +#undef sa_flags +#undef sa_restorer +#undef sa_mask + +struct xsigaction { + void (*sa_handler)(void); + unsigned long sa_flags; + void (*sa_restorer)(void); + unsigned int sa_mask; // mask last for extensibility +}; +*/ +import "C" + +const ( + 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 + + SA_RESTART = C.SA_RESTART + SA_ONSTACK = C.SA_ONSTACK + SA_RESTORER = C.SA_RESTORER + SA_SIGINFO = C.SA_SIGINFO + + 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 + SIGSTKFLT = C.SIGSTKFLT + 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 + + FPE_INTDIV = C.FPE_INTDIV & 0xFFFF + FPE_INTOVF = C.FPE_INTOVF & 0xFFFF + FPE_FLTDIV = C.FPE_FLTDIV & 0xFFFF + FPE_FLTOVF = C.FPE_FLTOVF & 0xFFFF + FPE_FLTUND = C.FPE_FLTUND & 0xFFFF + FPE_FLTRES = C.FPE_FLTRES & 0xFFFF + FPE_FLTINV = C.FPE_FLTINV & 0xFFFF + FPE_FLTSUB = C.FPE_FLTSUB & 0xFFFF + + BUS_ADRALN = C.BUS_ADRALN & 0xFFFF + BUS_ADRERR = C.BUS_ADRERR & 0xFFFF + BUS_OBJERR = C.BUS_OBJERR & 0xFFFF + + SEGV_MAPERR = C.SEGV_MAPERR & 0xFFFF + SEGV_ACCERR = C.SEGV_ACCERR & 0xFFFF + + ITIMER_REAL = C.ITIMER_REAL + ITIMER_PROF = C.ITIMER_PROF + ITIMER_VIRTUAL = C.ITIMER_VIRTUAL +) + +type Sigset C.sigset_t +type Timespec C.struct_timespec +type Sigaltstack C.struct_sigaltstack +type Sigcontext C.struct_sigcontext +type Ucontext C.struct_ucontext +type Timeval C.struct_timeval +type Itimerval C.struct_itimerval +type Siginfo C.struct_xsiginfo +type Sigaction C.struct_xsigaction |
