From f02cf1997d84107cbdd53967748c1d8f3a2a8577 Mon Sep 17 00:00:00 2001 From: Mikio Hara Date: Mon, 26 Nov 2012 21:29:13 +0900 Subject: [PATCH] runtime: regenerate defs-files for freebsd R=minux.ma, jsing CC=golang-dev https://golang.org/cl/6855080 --- src/pkg/runtime/defs_freebsd.go | 1 - src/pkg/runtime/defs_freebsd_386.h | 318 +++++++++++++------------ src/pkg/runtime/defs_freebsd_amd64.h | 340 +++++++++++++-------------- src/pkg/runtime/defs_freebsd_arm.h | 281 ++++++++++------------ src/pkg/runtime/signal_freebsd_arm.c | 20 +- src/pkg/runtime/thread_freebsd.c | 6 +- 6 files changed, 477 insertions(+), 489 deletions(-) diff --git a/src/pkg/runtime/defs_freebsd.go b/src/pkg/runtime/defs_freebsd.go index 0302527936..0840227155 100644 --- a/src/pkg/runtime/defs_freebsd.go +++ b/src/pkg/runtime/defs_freebsd.go @@ -107,7 +107,6 @@ type Rtprio C.struct_rtprio type ThrParam C.struct_thr_param type Sigaltstack C.struct_sigaltstack type Sigset C.struct___sigset -type Sigval C.union_sigval type StackT C.stack_t type Siginfo C.siginfo_t diff --git a/src/pkg/runtime/defs_freebsd_386.h b/src/pkg/runtime/defs_freebsd_386.h index eb8c7f629f..d00c852c69 100644 --- a/src/pkg/runtime/defs_freebsd_386.h +++ b/src/pkg/runtime/defs_freebsd_386.h @@ -1,194 +1,190 @@ -// godefs -f -m32 defs.c +// Created by cgo -cdefs - DO NOT EDIT +// cgo -cdefs defs_freebsd.go -// MACHINE GENERATED - DO NOT EDIT. -// Constants enum { - PROT_NONE = 0, - PROT_READ = 0x1, - PROT_WRITE = 0x2, - PROT_EXEC = 0x4, - MAP_ANON = 0x1000, - MAP_PRIVATE = 0x2, - MAP_FIXED = 0x10, - MADV_FREE = 0x5, - SA_SIGINFO = 0x40, - SA_RESTART = 0x2, - SA_ONSTACK = 0x1, - UMTX_OP_WAIT = 0x2, - UMTX_OP_WAKE = 0x3, - EINTR = 0x4, - SIGHUP = 0x1, - SIGINT = 0x2, - SIGQUIT = 0x3, - SIGILL = 0x4, - SIGTRAP = 0x5, - SIGABRT = 0x6, - SIGEMT = 0x7, - SIGFPE = 0x8, - SIGKILL = 0x9, - SIGBUS = 0xa, - SIGSEGV = 0xb, - SIGSYS = 0xc, - SIGPIPE = 0xd, - SIGALRM = 0xe, - SIGTERM = 0xf, - SIGURG = 0x10, - SIGSTOP = 0x11, - SIGTSTP = 0x12, - SIGCONT = 0x13, - SIGCHLD = 0x14, - SIGTTIN = 0x15, - SIGTTOU = 0x16, - SIGIO = 0x17, - SIGXCPU = 0x18, - SIGXFSZ = 0x19, - SIGVTALRM = 0x1a, - SIGPROF = 0x1b, - SIGWINCH = 0x1c, - SIGINFO = 0x1d, - SIGUSR1 = 0x1e, - SIGUSR2 = 0x1f, - FPE_INTDIV = 0x2, - FPE_INTOVF = 0x1, - 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, + PROT_NONE = 0x0, + PROT_READ = 0x1, + PROT_WRITE = 0x2, + PROT_EXEC = 0x4, + + MAP_ANON = 0x1000, + MAP_PRIVATE = 0x2, + MAP_FIXED = 0x10, + + MADV_FREE = 0x5, + + SA_SIGINFO = 0x40, + SA_RESTART = 0x2, + SA_ONSTACK = 0x1, + + UMTX_OP_WAIT = 0x2, + UMTX_OP_WAKE = 0x3, + + EINTR = 0x4, + + SIGHUP = 0x1, + SIGINT = 0x2, + SIGQUIT = 0x3, + SIGILL = 0x4, + SIGTRAP = 0x5, + SIGABRT = 0x6, + SIGEMT = 0x7, + SIGFPE = 0x8, + SIGKILL = 0x9, + SIGBUS = 0xa, + SIGSEGV = 0xb, + SIGSYS = 0xc, + SIGPIPE = 0xd, + SIGALRM = 0xe, + SIGTERM = 0xf, + SIGURG = 0x10, + SIGSTOP = 0x11, + SIGTSTP = 0x12, + SIGCONT = 0x13, + SIGCHLD = 0x14, + SIGTTIN = 0x15, + SIGTTOU = 0x16, + SIGIO = 0x17, + SIGXCPU = 0x18, + SIGXFSZ = 0x19, + SIGVTALRM = 0x1a, + SIGPROF = 0x1b, + SIGWINCH = 0x1c, + SIGINFO = 0x1d, + SIGUSR1 = 0x1e, + SIGUSR2 = 0x1f, + + FPE_INTDIV = 0x2, + FPE_INTOVF = 0x1, + 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 Rtprio Rtprio; +typedef struct ThrParam ThrParam; +typedef struct Sigaltstack Sigaltstack; +typedef struct Sigset Sigset; +typedef struct StackT StackT; +typedef struct Siginfo Siginfo; +typedef struct Mcontext Mcontext; +typedef struct Ucontext Ucontext; +typedef struct Timespec Timespec; +typedef struct Timeval Timeval; +typedef struct Itimerval Itimerval; + #pragma pack on -typedef struct Rtprio Rtprio; struct Rtprio { - uint16 type; - uint16 prio; + uint16 type; + uint16 prio; }; - -typedef struct ThrParam ThrParam; struct ThrParam { - void *start_func; - void *arg; - int8 *stack_base; - uint32 stack_size; - int8 *tls_base; - uint32 tls_size; - int32 *child_tid; - int32 *parent_tid; - int32 flags; - Rtprio *rtp; - void* spare[3]; + void *start_func; + byte *arg; + int8 *stack_base; + uint32 stack_size; + int8 *tls_base; + uint32 tls_size; + int32 *child_tid; + int32 *parent_tid; + int32 flags; + Rtprio *rtp; + void *spare[3]; }; - -typedef struct Sigaltstack Sigaltstack; struct Sigaltstack { - int8 *ss_sp; - uint32 ss_size; - int32 ss_flags; + int8 *ss_sp; + uint32 ss_size; + int32 ss_flags; }; - -typedef struct Sigset Sigset; struct Sigset { - uint32 __bits[4]; -}; - -typedef union Sigval Sigval; -union Sigval { - int32 sival_int; - void *sival_ptr; - int32 sigval_int; - void *sigval_ptr; + uint32 __bits[4]; }; - -typedef struct StackT StackT; struct StackT { - int8 *ss_sp; - uint32 ss_size; - int32 ss_flags; + int8 *ss_sp; + uint32 ss_size; + int32 ss_flags; }; -typedef struct Siginfo Siginfo; struct Siginfo { - int32 si_signo; - int32 si_errno; - int32 si_code; - int32 si_pid; - uint32 si_uid; - int32 si_status; - void *si_addr; - Sigval si_value; - byte _reason[32]; + int32 si_signo; + int32 si_errno; + int32 si_code; + int32 si_pid; + uint32 si_uid; + int32 si_status; + byte *si_addr; + byte si_value[4]; + byte _reason[32]; }; -typedef struct Mcontext Mcontext; struct Mcontext { - int32 mc_onstack; - int32 mc_gs; - int32 mc_fs; - int32 mc_es; - int32 mc_ds; - int32 mc_edi; - int32 mc_esi; - int32 mc_ebp; - int32 mc_isp; - int32 mc_ebx; - int32 mc_edx; - int32 mc_ecx; - int32 mc_eax; - int32 mc_trapno; - int32 mc_err; - int32 mc_eip; - int32 mc_cs; - int32 mc_eflags; - int32 mc_esp; - int32 mc_ss; - int32 mc_len; - int32 mc_fpformat; - int32 mc_ownedfp; - int32 mc_spare1[1]; - int32 mc_fpstate[128]; - int32 mc_fsbase; - int32 mc_gsbase; - int32 mc_spare2[6]; + int32 mc_onstack; + int32 mc_gs; + int32 mc_fs; + int32 mc_es; + int32 mc_ds; + int32 mc_edi; + int32 mc_esi; + int32 mc_ebp; + int32 mc_isp; + int32 mc_ebx; + int32 mc_edx; + int32 mc_ecx; + int32 mc_eax; + int32 mc_trapno; + int32 mc_err; + int32 mc_eip; + int32 mc_cs; + int32 mc_eflags; + int32 mc_esp; + int32 mc_ss; + int32 mc_len; + int32 mc_fpformat; + int32 mc_ownedfp; + int32 mc_spare1[1]; + int32 mc_fpstate[128]; + int32 mc_fsbase; + int32 mc_gsbase; + int32 mc_spare2[6]; }; - -typedef struct Ucontext Ucontext; struct Ucontext { - Sigset uc_sigmask; - Mcontext uc_mcontext; - Ucontext *uc_link; - StackT uc_stack; - int32 uc_flags; - int32 __spare__[4]; - byte pad_godefs_0[12]; + Sigset uc_sigmask; + Mcontext uc_mcontext; + Ucontext *uc_link; + StackT uc_stack; + int32 uc_flags; + int32 __spare__[4]; + byte Pad_cgo_0[12]; }; -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 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/defs_freebsd_amd64.h b/src/pkg/runtime/defs_freebsd_amd64.h index a933a9c024..6348c0482d 100644 --- a/src/pkg/runtime/defs_freebsd_amd64.h +++ b/src/pkg/runtime/defs_freebsd_amd64.h @@ -1,205 +1,201 @@ -// godefs -f -m64 defs.c +// Created by cgo -cdefs - DO NOT EDIT +// cgo -cdefs defs_freebsd.go -// MACHINE GENERATED - DO NOT EDIT. -// Constants enum { - PROT_NONE = 0, - PROT_READ = 0x1, - PROT_WRITE = 0x2, - PROT_EXEC = 0x4, - MAP_ANON = 0x1000, - MAP_PRIVATE = 0x2, - MAP_FIXED = 0x10, - MADV_FREE = 0x5, - SA_SIGINFO = 0x40, - SA_RESTART = 0x2, - SA_ONSTACK = 0x1, - UMTX_OP_WAIT = 0x2, - UMTX_OP_WAKE = 0x3, - EINTR = 0x4, - SIGHUP = 0x1, - SIGINT = 0x2, - SIGQUIT = 0x3, - SIGILL = 0x4, - SIGTRAP = 0x5, - SIGABRT = 0x6, - SIGEMT = 0x7, - SIGFPE = 0x8, - SIGKILL = 0x9, - SIGBUS = 0xa, - SIGSEGV = 0xb, - SIGSYS = 0xc, - SIGPIPE = 0xd, - SIGALRM = 0xe, - SIGTERM = 0xf, - SIGURG = 0x10, - SIGSTOP = 0x11, - SIGTSTP = 0x12, - SIGCONT = 0x13, - SIGCHLD = 0x14, - SIGTTIN = 0x15, - SIGTTOU = 0x16, - SIGIO = 0x17, - SIGXCPU = 0x18, - SIGXFSZ = 0x19, - SIGVTALRM = 0x1a, - SIGPROF = 0x1b, - SIGWINCH = 0x1c, - SIGINFO = 0x1d, - SIGUSR1 = 0x1e, - SIGUSR2 = 0x1f, - FPE_INTDIV = 0x2, - FPE_INTOVF = 0x1, - 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, + PROT_NONE = 0x0, + PROT_READ = 0x1, + PROT_WRITE = 0x2, + PROT_EXEC = 0x4, + + MAP_ANON = 0x1000, + MAP_PRIVATE = 0x2, + MAP_FIXED = 0x10, + + MADV_FREE = 0x5, + + SA_SIGINFO = 0x40, + SA_RESTART = 0x2, + SA_ONSTACK = 0x1, + + UMTX_OP_WAIT = 0x2, + UMTX_OP_WAKE = 0x3, + + EINTR = 0x4, + + SIGHUP = 0x1, + SIGINT = 0x2, + SIGQUIT = 0x3, + SIGILL = 0x4, + SIGTRAP = 0x5, + SIGABRT = 0x6, + SIGEMT = 0x7, + SIGFPE = 0x8, + SIGKILL = 0x9, + SIGBUS = 0xa, + SIGSEGV = 0xb, + SIGSYS = 0xc, + SIGPIPE = 0xd, + SIGALRM = 0xe, + SIGTERM = 0xf, + SIGURG = 0x10, + SIGSTOP = 0x11, + SIGTSTP = 0x12, + SIGCONT = 0x13, + SIGCHLD = 0x14, + SIGTTIN = 0x15, + SIGTTOU = 0x16, + SIGIO = 0x17, + SIGXCPU = 0x18, + SIGXFSZ = 0x19, + SIGVTALRM = 0x1a, + SIGPROF = 0x1b, + SIGWINCH = 0x1c, + SIGINFO = 0x1d, + SIGUSR1 = 0x1e, + SIGUSR2 = 0x1f, + + FPE_INTDIV = 0x2, + FPE_INTOVF = 0x1, + 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 Rtprio Rtprio; +typedef struct ThrParam ThrParam; +typedef struct Sigaltstack Sigaltstack; +typedef struct Sigset Sigset; +typedef struct StackT StackT; +typedef struct Siginfo Siginfo; +typedef struct Mcontext Mcontext; +typedef struct Ucontext Ucontext; +typedef struct Timespec Timespec; +typedef struct Timeval Timeval; +typedef struct Itimerval Itimerval; + #pragma pack on -typedef struct Rtprio Rtprio; struct Rtprio { - uint16 type; - uint16 prio; + uint16 type; + uint16 prio; }; - -typedef struct ThrParam ThrParam; struct ThrParam { - void *start_func; - void *arg; - int8 *stack_base; - uint64 stack_size; - int8 *tls_base; - uint64 tls_size; - int64 *child_tid; - int64 *parent_tid; - int32 flags; - byte pad_godefs_0[4]; - Rtprio *rtp; - void* spare[3]; + void *start_func; + byte *arg; + int8 *stack_base; + uint64 stack_size; + int8 *tls_base; + uint64 tls_size; + int64 *child_tid; + int64 *parent_tid; + int32 flags; + byte Pad_cgo_0[4]; + Rtprio *rtp; + void *spare[3]; }; - -typedef struct Sigaltstack Sigaltstack; struct Sigaltstack { - int8 *ss_sp; - uint64 ss_size; - int32 ss_flags; - byte pad_godefs_0[4]; + int8 *ss_sp; + uint64 ss_size; + int32 ss_flags; + byte Pad_cgo_0[4]; }; - -typedef struct Sigset Sigset; struct Sigset { - uint32 __bits[4]; -}; - -typedef union Sigval Sigval; -union Sigval { - int32 sival_int; - void *sival_ptr; - int32 sigval_int; - void *sigval_ptr; + uint32 __bits[4]; }; - -typedef struct StackT StackT; struct StackT { - int8 *ss_sp; - uint64 ss_size; - int32 ss_flags; - byte pad_godefs_0[4]; + int8 *ss_sp; + uint64 ss_size; + int32 ss_flags; + byte Pad_cgo_0[4]; }; -typedef struct Siginfo Siginfo; struct Siginfo { - int32 si_signo; - int32 si_errno; - int32 si_code; - int32 si_pid; - uint32 si_uid; - int32 si_status; - void *si_addr; - Sigval si_value; - byte _reason[40]; + int32 si_signo; + int32 si_errno; + int32 si_code; + int32 si_pid; + uint32 si_uid; + int32 si_status; + byte *si_addr; + byte si_value[8]; + byte _reason[40]; }; -typedef struct Mcontext Mcontext; struct Mcontext { - int64 mc_onstack; - int64 mc_rdi; - int64 mc_rsi; - int64 mc_rdx; - int64 mc_rcx; - int64 mc_r8; - int64 mc_r9; - int64 mc_rax; - int64 mc_rbx; - int64 mc_rbp; - int64 mc_r10; - int64 mc_r11; - int64 mc_r12; - int64 mc_r13; - int64 mc_r14; - int64 mc_r15; - uint32 mc_trapno; - uint16 mc_fs; - uint16 mc_gs; - int64 mc_addr; - uint32 mc_flags; - uint16 mc_es; - uint16 mc_ds; - int64 mc_err; - int64 mc_rip; - int64 mc_cs; - int64 mc_rflags; - int64 mc_rsp; - int64 mc_ss; - int64 mc_len; - int64 mc_fpformat; - int64 mc_ownedfp; - int64 mc_fpstate[64]; - int64 mc_fsbase; - int64 mc_gsbase; - int64 mc_spare[6]; + int64 mc_onstack; + int64 mc_rdi; + int64 mc_rsi; + int64 mc_rdx; + int64 mc_rcx; + int64 mc_r8; + int64 mc_r9; + int64 mc_rax; + int64 mc_rbx; + int64 mc_rbp; + int64 mc_r10; + int64 mc_r11; + int64 mc_r12; + int64 mc_r13; + int64 mc_r14; + int64 mc_r15; + uint32 mc_trapno; + uint16 mc_fs; + uint16 mc_gs; + int64 mc_addr; + uint32 mc_flags; + uint16 mc_es; + uint16 mc_ds; + int64 mc_err; + int64 mc_rip; + int64 mc_cs; + int64 mc_rflags; + int64 mc_rsp; + int64 mc_ss; + int64 mc_len; + int64 mc_fpformat; + int64 mc_ownedfp; + int64 mc_fpstate[64]; + int64 mc_fsbase; + int64 mc_gsbase; + int64 mc_spare[6]; }; - -typedef struct Ucontext Ucontext; struct Ucontext { - Sigset uc_sigmask; - Mcontext uc_mcontext; - Ucontext *uc_link; - StackT uc_stack; - int32 uc_flags; - int32 __spare__[4]; - byte pad_godefs_0[12]; + Sigset uc_sigmask; + Mcontext uc_mcontext; + Ucontext *uc_link; + StackT uc_stack; + int32 uc_flags; + int32 __spare__[4]; + byte Pad_cgo_0[12]; }; -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 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/defs_freebsd_arm.h b/src/pkg/runtime/defs_freebsd_arm.h index 995129f291..a744b808f5 100644 --- a/src/pkg/runtime/defs_freebsd_arm.h +++ b/src/pkg/runtime/defs_freebsd_arm.h @@ -1,184 +1,163 @@ -// godefs -f -m32 defs.c +// Created by cgo -cdefs - DO NOT EDIT +// cgo -cdefs defs_freebsd.go -// MACHINE GENERATED - DO NOT EDIT. -// Constants enum { - PROT_NONE = 0, - PROT_READ = 0x1, - PROT_WRITE = 0x2, - PROT_EXEC = 0x4, - MAP_ANON = 0x1000, - MAP_PRIVATE = 0x2, - MAP_FIXED = 0x10, - MADV_FREE = 0x5, - SA_SIGINFO = 0x40, - SA_RESTART = 0x2, - SA_ONSTACK = 0x1, - UMTX_OP_WAIT = 0x2, - UMTX_OP_WAKE = 0x3, - EINTR = 0x4, - SIGHUP = 0x1, - SIGINT = 0x2, - SIGQUIT = 0x3, - SIGILL = 0x4, - SIGTRAP = 0x5, - SIGABRT = 0x6, - SIGEMT = 0x7, - SIGFPE = 0x8, - SIGKILL = 0x9, - SIGBUS = 0xa, - SIGSEGV = 0xb, - SIGSYS = 0xc, - SIGPIPE = 0xd, - SIGALRM = 0xe, - SIGTERM = 0xf, - SIGURG = 0x10, - SIGSTOP = 0x11, - SIGTSTP = 0x12, - SIGCONT = 0x13, - SIGCHLD = 0x14, - SIGTTIN = 0x15, - SIGTTOU = 0x16, - SIGIO = 0x17, - SIGXCPU = 0x18, - SIGXFSZ = 0x19, - SIGVTALRM = 0x1a, - SIGPROF = 0x1b, - SIGWINCH = 0x1c, - SIGINFO = 0x1d, - SIGUSR1 = 0x1e, - SIGUSR2 = 0x1f, - FPE_INTDIV = 0x2, - FPE_INTOVF = 0x1, - 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, + PROT_NONE = 0x0, + PROT_READ = 0x1, + PROT_WRITE = 0x2, + PROT_EXEC = 0x4, + + MAP_ANON = 0x1000, + MAP_PRIVATE = 0x2, + MAP_FIXED = 0x10, + + MADV_FREE = 0x5, + + SA_SIGINFO = 0x40, + SA_RESTART = 0x2, + SA_ONSTACK = 0x1, + + UMTX_OP_WAIT = 0x2, + UMTX_OP_WAKE = 0x3, + + EINTR = 0x4, + + SIGHUP = 0x1, + SIGINT = 0x2, + SIGQUIT = 0x3, + SIGILL = 0x4, + SIGTRAP = 0x5, + SIGABRT = 0x6, + SIGEMT = 0x7, + SIGFPE = 0x8, + SIGKILL = 0x9, + SIGBUS = 0xa, + SIGSEGV = 0xb, + SIGSYS = 0xc, + SIGPIPE = 0xd, + SIGALRM = 0xe, + SIGTERM = 0xf, + SIGURG = 0x10, + SIGSTOP = 0x11, + SIGTSTP = 0x12, + SIGCONT = 0x13, + SIGCHLD = 0x14, + SIGTTIN = 0x15, + SIGTTOU = 0x16, + SIGIO = 0x17, + SIGXCPU = 0x18, + SIGXFSZ = 0x19, + SIGVTALRM = 0x1a, + SIGPROF = 0x1b, + SIGWINCH = 0x1c, + SIGINFO = 0x1d, + SIGUSR1 = 0x1e, + SIGUSR2 = 0x1f, + + FPE_INTDIV = 0x2, + FPE_INTOVF = 0x1, + 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 Rtprio Rtprio; +typedef struct ThrParam ThrParam; +typedef struct Sigaltstack Sigaltstack; +typedef struct Sigset Sigset; +typedef struct StackT StackT; +typedef struct Siginfo Siginfo; +typedef struct Mcontext Mcontext; +typedef struct Ucontext Ucontext; +typedef struct Timespec Timespec; +typedef struct Timeval Timeval; +typedef struct Itimerval Itimerval; + #pragma pack on -typedef struct Rtprio Rtprio; struct Rtprio { - uint16 type; - uint16 prio; + uint16 type; + uint16 prio; }; - -typedef struct ThrParam ThrParam; struct ThrParam { - void *start_func; - void *arg; - int8 *stack_base; - uint32 stack_size; - int8 *tls_base; - uint32 tls_size; - int32 *child_tid; - int32 *parent_tid; - int32 flags; - Rtprio *rtp; - void* spare[3]; + void *start_func; + byte *arg; + uint8 *stack_base; + uint32 stack_size; + uint8 *tls_base; + uint32 tls_size; + int32 *child_tid; + int32 *parent_tid; + int32 flags; + Rtprio *rtp; + void *spare[3]; }; - -typedef struct Sigaltstack Sigaltstack; struct Sigaltstack { - int8 *ss_sp; - uint32 ss_size; - int32 ss_flags; + uint8 *ss_sp; + uint32 ss_size; + int32 ss_flags; }; - -typedef struct Sigset Sigset; struct Sigset { - uint32 __bits[4]; -}; - -typedef union Sigval Sigval; -union Sigval { - int32 sival_int; - void *sival_ptr; - int32 sigval_int; - void *sigval_ptr; + uint32 __bits[4]; }; - -typedef struct StackT StackT; struct StackT { - int8 *ss_sp; - uint32 ss_size; - int32 ss_flags; + uint8 *ss_sp; + uint32 ss_size; + int32 ss_flags; }; -typedef struct Siginfo Siginfo; struct Siginfo { - int32 si_signo; - int32 si_errno; - int32 si_code; - int32 si_pid; - uint32 si_uid; - int32 si_status; - void *si_addr; - Sigval si_value; - byte _reason[32]; + int32 si_signo; + int32 si_errno; + int32 si_code; + int32 si_pid; + uint32 si_uid; + int32 si_status; + byte *si_addr; + byte si_value[4]; + byte _reason[32]; }; -typedef struct Mcontext Mcontext; struct Mcontext { - uint32 r0; - uint32 r1; - uint32 r2; - uint32 r3; - uint32 r4; - uint32 r5; - uint32 r6; - uint32 r7; - uint32 r8; - uint32 r9; - uint32 r10; - uint32 r11; - uint32 r12; - uint32 r13; - uint32 r14; - uint32 r15; - uint32 cpsr; - uint32 _pad[1+33+1]; // union __fpu + uint32 __gregs[17]; + byte __fpu[140]; }; - -typedef struct Ucontext Ucontext; struct Ucontext { - Sigset uc_sigmask; - Mcontext uc_mcontext; - Ucontext *uc_link; - StackT uc_stack; - int32 uc_flags; - int32 __spare__[4]; - byte pad_godefs_0[12]; + Sigset uc_sigmask; + Mcontext uc_mcontext; + Ucontext *uc_link; + StackT uc_stack; + int32 uc_flags; + int32 __spare__[4]; }; -typedef struct Timespec Timespec; struct Timespec { - int64 tv_sec; // FreeBSD/ARM uses int64 for time_t - int32 tv_nsec; + int64 tv_sec; + int32 tv_nsec; }; - -typedef struct Timeval Timeval; struct Timeval { - int64 tv_sec; // FreeBSD/ARM uses int64 for time_t - int32 tv_usec; + int64 tv_sec; + int32 tv_usec; }; - -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/signal_freebsd_arm.c b/src/pkg/runtime/signal_freebsd_arm.c index c9fe7fec42..cc96280f7a 100644 --- a/src/pkg/runtime/signal_freebsd_arm.c +++ b/src/pkg/runtime/signal_freebsd_arm.c @@ -7,6 +7,24 @@ #include "signals_GOOS.h" #include "os_GOOS.h" +#define r0 __gregs[0] +#define r1 __gregs[1] +#define r2 __gregs[2] +#define r3 __gregs[3] +#define r4 __gregs[4] +#define r5 __gregs[5] +#define r6 __gregs[6] +#define r7 __gregs[7] +#define r8 __gregs[8] +#define r9 __gregs[9] +#define r10 __gregs[10] +#define r11 __gregs[11] +#define r12 __gregs[12] +#define r13 __gregs[13] +#define r14 __gregs[14] +#define r15 __gregs[15] +#define cpsr __gregs[16] + void runtime·dumpregs(Mcontext *r) { @@ -118,7 +136,7 @@ runtime·signalstack(byte *p, int32 n) { Sigaltstack st; - st.ss_sp = (int8*)p; + st.ss_sp = (uint8*)p; st.ss_size = n; st.ss_flags = 0; runtime·sigaltstack(&st, nil); diff --git a/src/pkg/runtime/thread_freebsd.c b/src/pkg/runtime/thread_freebsd.c index 4d39f3c804..884bbf4c88 100644 --- a/src/pkg/runtime/thread_freebsd.c +++ b/src/pkg/runtime/thread_freebsd.c @@ -94,12 +94,12 @@ runtime·newosproc(M *m, G *g, void *stk, void (*fn)(void)) runtime·memclr((byte*)¶m, sizeof param); param.start_func = runtime·thr_start; - param.arg = m; - param.stack_base = (int8*)g->stackbase; + param.arg = (byte*)m; + param.stack_base = (void*)g->stackbase; param.stack_size = (byte*)stk - (byte*)g->stackbase; param.child_tid = (intptr*)&m->procid; param.parent_tid = nil; - param.tls_base = (int8*)&m->tls[0]; + param.tls_base = (void*)&m->tls[0]; param.tls_size = sizeof m->tls; m->tls[0] = m->id; // so 386 asm can find it -- 2.50.0