Commit f02cf199 authored by Mikio Hara's avatar Mikio Hara

runtime: regenerate defs-files for freebsd

R=minux.ma, jsing
CC=golang-dev
https://golang.org/cl/6855080
parent 62f54e12
...@@ -107,7 +107,6 @@ type Rtprio C.struct_rtprio ...@@ -107,7 +107,6 @@ type Rtprio C.struct_rtprio
type ThrParam C.struct_thr_param type ThrParam C.struct_thr_param
type Sigaltstack C.struct_sigaltstack type Sigaltstack C.struct_sigaltstack
type Sigset C.struct___sigset type Sigset C.struct___sigset
type Sigval C.union_sigval
type StackT C.stack_t type StackT C.stack_t
type Siginfo C.siginfo_t type Siginfo C.siginfo_t
......
// godefs -f -m32 defs.c // Created by cgo -cdefs - DO NOT EDIT
// cgo -cdefs defs_freebsd.go
// MACHINE GENERATED - DO NOT EDIT.
// Constants
enum { enum {
PROT_NONE = 0, PROT_NONE = 0x0,
PROT_READ = 0x1, PROT_READ = 0x1,
PROT_WRITE = 0x2, PROT_WRITE = 0x2,
PROT_EXEC = 0x4, PROT_EXEC = 0x4,
MAP_ANON = 0x1000,
MAP_PRIVATE = 0x2, MAP_ANON = 0x1000,
MAP_FIXED = 0x10, MAP_PRIVATE = 0x2,
MADV_FREE = 0x5, MAP_FIXED = 0x10,
SA_SIGINFO = 0x40,
SA_RESTART = 0x2, MADV_FREE = 0x5,
SA_ONSTACK = 0x1,
UMTX_OP_WAIT = 0x2, SA_SIGINFO = 0x40,
UMTX_OP_WAKE = 0x3, SA_RESTART = 0x2,
EINTR = 0x4, SA_ONSTACK = 0x1,
SIGHUP = 0x1,
SIGINT = 0x2, UMTX_OP_WAIT = 0x2,
SIGQUIT = 0x3, UMTX_OP_WAKE = 0x3,
SIGILL = 0x4,
SIGTRAP = 0x5, EINTR = 0x4,
SIGABRT = 0x6,
SIGEMT = 0x7, SIGHUP = 0x1,
SIGFPE = 0x8, SIGINT = 0x2,
SIGKILL = 0x9, SIGQUIT = 0x3,
SIGBUS = 0xa, SIGILL = 0x4,
SIGSEGV = 0xb, SIGTRAP = 0x5,
SIGSYS = 0xc, SIGABRT = 0x6,
SIGPIPE = 0xd, SIGEMT = 0x7,
SIGALRM = 0xe, SIGFPE = 0x8,
SIGTERM = 0xf, SIGKILL = 0x9,
SIGURG = 0x10, SIGBUS = 0xa,
SIGSTOP = 0x11, SIGSEGV = 0xb,
SIGTSTP = 0x12, SIGSYS = 0xc,
SIGCONT = 0x13, SIGPIPE = 0xd,
SIGCHLD = 0x14, SIGALRM = 0xe,
SIGTTIN = 0x15, SIGTERM = 0xf,
SIGTTOU = 0x16, SIGURG = 0x10,
SIGIO = 0x17, SIGSTOP = 0x11,
SIGXCPU = 0x18, SIGTSTP = 0x12,
SIGXFSZ = 0x19, SIGCONT = 0x13,
SIGVTALRM = 0x1a, SIGCHLD = 0x14,
SIGPROF = 0x1b, SIGTTIN = 0x15,
SIGWINCH = 0x1c, SIGTTOU = 0x16,
SIGINFO = 0x1d, SIGIO = 0x17,
SIGUSR1 = 0x1e, SIGXCPU = 0x18,
SIGUSR2 = 0x1f, SIGXFSZ = 0x19,
FPE_INTDIV = 0x2, SIGVTALRM = 0x1a,
FPE_INTOVF = 0x1, SIGPROF = 0x1b,
FPE_FLTDIV = 0x3, SIGWINCH = 0x1c,
FPE_FLTOVF = 0x4, SIGINFO = 0x1d,
FPE_FLTUND = 0x5, SIGUSR1 = 0x1e,
FPE_FLTRES = 0x6, SIGUSR2 = 0x1f,
FPE_FLTINV = 0x7,
FPE_FLTSUB = 0x8, FPE_INTDIV = 0x2,
BUS_ADRALN = 0x1, FPE_INTOVF = 0x1,
BUS_ADRERR = 0x2, FPE_FLTDIV = 0x3,
BUS_OBJERR = 0x3, FPE_FLTOVF = 0x4,
SEGV_MAPERR = 0x1, FPE_FLTUND = 0x5,
SEGV_ACCERR = 0x2, FPE_FLTRES = 0x6,
ITIMER_REAL = 0, FPE_FLTINV = 0x7,
ITIMER_VIRTUAL = 0x1, FPE_FLTSUB = 0x8,
ITIMER_PROF = 0x2,
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 #pragma pack on
typedef struct Rtprio Rtprio;
struct Rtprio { struct Rtprio {
uint16 type; uint16 type;
uint16 prio; uint16 prio;
}; };
typedef struct ThrParam ThrParam;
struct ThrParam { struct ThrParam {
void *start_func; void *start_func;
void *arg; byte *arg;
int8 *stack_base; int8 *stack_base;
uint32 stack_size; uint32 stack_size;
int8 *tls_base; int8 *tls_base;
uint32 tls_size; uint32 tls_size;
int32 *child_tid; int32 *child_tid;
int32 *parent_tid; int32 *parent_tid;
int32 flags; int32 flags;
Rtprio *rtp; Rtprio *rtp;
void* spare[3]; void *spare[3];
}; };
typedef struct Sigaltstack Sigaltstack;
struct Sigaltstack { struct Sigaltstack {
int8 *ss_sp; int8 *ss_sp;
uint32 ss_size; uint32 ss_size;
int32 ss_flags; int32 ss_flags;
}; };
typedef struct Sigset Sigset;
struct Sigset { struct Sigset {
uint32 __bits[4]; uint32 __bits[4];
};
typedef union Sigval Sigval;
union Sigval {
int32 sival_int;
void *sival_ptr;
int32 sigval_int;
void *sigval_ptr;
}; };
typedef struct StackT StackT;
struct StackT { struct StackT {
int8 *ss_sp; int8 *ss_sp;
uint32 ss_size; uint32 ss_size;
int32 ss_flags; int32 ss_flags;
}; };
typedef struct Siginfo Siginfo;
struct Siginfo { struct Siginfo {
int32 si_signo; int32 si_signo;
int32 si_errno; int32 si_errno;
int32 si_code; int32 si_code;
int32 si_pid; int32 si_pid;
uint32 si_uid; uint32 si_uid;
int32 si_status; int32 si_status;
void *si_addr; byte *si_addr;
Sigval si_value; byte si_value[4];
byte _reason[32]; byte _reason[32];
}; };
typedef struct Mcontext Mcontext;
struct Mcontext { struct Mcontext {
int32 mc_onstack; int32 mc_onstack;
int32 mc_gs; int32 mc_gs;
int32 mc_fs; int32 mc_fs;
int32 mc_es; int32 mc_es;
int32 mc_ds; int32 mc_ds;
int32 mc_edi; int32 mc_edi;
int32 mc_esi; int32 mc_esi;
int32 mc_ebp; int32 mc_ebp;
int32 mc_isp; int32 mc_isp;
int32 mc_ebx; int32 mc_ebx;
int32 mc_edx; int32 mc_edx;
int32 mc_ecx; int32 mc_ecx;
int32 mc_eax; int32 mc_eax;
int32 mc_trapno; int32 mc_trapno;
int32 mc_err; int32 mc_err;
int32 mc_eip; int32 mc_eip;
int32 mc_cs; int32 mc_cs;
int32 mc_eflags; int32 mc_eflags;
int32 mc_esp; int32 mc_esp;
int32 mc_ss; int32 mc_ss;
int32 mc_len; int32 mc_len;
int32 mc_fpformat; int32 mc_fpformat;
int32 mc_ownedfp; int32 mc_ownedfp;
int32 mc_spare1[1]; int32 mc_spare1[1];
int32 mc_fpstate[128]; int32 mc_fpstate[128];
int32 mc_fsbase; int32 mc_fsbase;
int32 mc_gsbase; int32 mc_gsbase;
int32 mc_spare2[6]; int32 mc_spare2[6];
}; };
typedef struct Ucontext Ucontext;
struct Ucontext { struct Ucontext {
Sigset uc_sigmask; Sigset uc_sigmask;
Mcontext uc_mcontext; Mcontext uc_mcontext;
Ucontext *uc_link; Ucontext *uc_link;
StackT uc_stack; StackT uc_stack;
int32 uc_flags; int32 uc_flags;
int32 __spare__[4]; int32 __spare__[4];
byte pad_godefs_0[12]; byte Pad_cgo_0[12];
}; };
typedef struct Timespec Timespec;
struct Timespec { struct Timespec {
int32 tv_sec; int32 tv_sec;
int32 tv_nsec; int32 tv_nsec;
}; };
typedef struct Timeval Timeval;
struct Timeval { struct Timeval {
int32 tv_sec; int32 tv_sec;
int32 tv_usec; int32 tv_usec;
}; };
typedef struct Itimerval Itimerval;
struct Itimerval { struct Itimerval {
Timeval it_interval; Timeval it_interval;
Timeval it_value; Timeval it_value;
}; };
#pragma pack off #pragma pack off
// godefs -f -m64 defs.c // Created by cgo -cdefs - DO NOT EDIT
// cgo -cdefs defs_freebsd.go
// MACHINE GENERATED - DO NOT EDIT.
// Constants
enum { enum {
PROT_NONE = 0, PROT_NONE = 0x0,
PROT_READ = 0x1, PROT_READ = 0x1,
PROT_WRITE = 0x2, PROT_WRITE = 0x2,
PROT_EXEC = 0x4, PROT_EXEC = 0x4,
MAP_ANON = 0x1000,
MAP_PRIVATE = 0x2, MAP_ANON = 0x1000,
MAP_FIXED = 0x10, MAP_PRIVATE = 0x2,
MADV_FREE = 0x5, MAP_FIXED = 0x10,
SA_SIGINFO = 0x40,
SA_RESTART = 0x2, MADV_FREE = 0x5,
SA_ONSTACK = 0x1,
UMTX_OP_WAIT = 0x2, SA_SIGINFO = 0x40,
UMTX_OP_WAKE = 0x3, SA_RESTART = 0x2,
EINTR = 0x4, SA_ONSTACK = 0x1,
SIGHUP = 0x1,
SIGINT = 0x2, UMTX_OP_WAIT = 0x2,
SIGQUIT = 0x3, UMTX_OP_WAKE = 0x3,
SIGILL = 0x4,
SIGTRAP = 0x5, EINTR = 0x4,
SIGABRT = 0x6,
SIGEMT = 0x7, SIGHUP = 0x1,
SIGFPE = 0x8, SIGINT = 0x2,
SIGKILL = 0x9, SIGQUIT = 0x3,
SIGBUS = 0xa, SIGILL = 0x4,
SIGSEGV = 0xb, SIGTRAP = 0x5,
SIGSYS = 0xc, SIGABRT = 0x6,
SIGPIPE = 0xd, SIGEMT = 0x7,
SIGALRM = 0xe, SIGFPE = 0x8,
SIGTERM = 0xf, SIGKILL = 0x9,
SIGURG = 0x10, SIGBUS = 0xa,
SIGSTOP = 0x11, SIGSEGV = 0xb,
SIGTSTP = 0x12, SIGSYS = 0xc,
SIGCONT = 0x13, SIGPIPE = 0xd,
SIGCHLD = 0x14, SIGALRM = 0xe,
SIGTTIN = 0x15, SIGTERM = 0xf,
SIGTTOU = 0x16, SIGURG = 0x10,
SIGIO = 0x17, SIGSTOP = 0x11,
SIGXCPU = 0x18, SIGTSTP = 0x12,
SIGXFSZ = 0x19, SIGCONT = 0x13,
SIGVTALRM = 0x1a, SIGCHLD = 0x14,
SIGPROF = 0x1b, SIGTTIN = 0x15,
SIGWINCH = 0x1c, SIGTTOU = 0x16,
SIGINFO = 0x1d, SIGIO = 0x17,
SIGUSR1 = 0x1e, SIGXCPU = 0x18,
SIGUSR2 = 0x1f, SIGXFSZ = 0x19,
FPE_INTDIV = 0x2, SIGVTALRM = 0x1a,
FPE_INTOVF = 0x1, SIGPROF = 0x1b,
FPE_FLTDIV = 0x3, SIGWINCH = 0x1c,
FPE_FLTOVF = 0x4, SIGINFO = 0x1d,
FPE_FLTUND = 0x5, SIGUSR1 = 0x1e,
FPE_FLTRES = 0x6, SIGUSR2 = 0x1f,
FPE_FLTINV = 0x7,
FPE_FLTSUB = 0x8, FPE_INTDIV = 0x2,
BUS_ADRALN = 0x1, FPE_INTOVF = 0x1,
BUS_ADRERR = 0x2, FPE_FLTDIV = 0x3,
BUS_OBJERR = 0x3, FPE_FLTOVF = 0x4,
SEGV_MAPERR = 0x1, FPE_FLTUND = 0x5,
SEGV_ACCERR = 0x2, FPE_FLTRES = 0x6,
ITIMER_REAL = 0, FPE_FLTINV = 0x7,
ITIMER_VIRTUAL = 0x1, FPE_FLTSUB = 0x8,
ITIMER_PROF = 0x2,
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 #pragma pack on
typedef struct Rtprio Rtprio;
struct Rtprio { struct Rtprio {
uint16 type; uint16 type;
uint16 prio; uint16 prio;
}; };
typedef struct ThrParam ThrParam;
struct ThrParam { struct ThrParam {
void *start_func; void *start_func;
void *arg; byte *arg;
int8 *stack_base; int8 *stack_base;
uint64 stack_size; uint64 stack_size;
int8 *tls_base; int8 *tls_base;
uint64 tls_size; uint64 tls_size;
int64 *child_tid; int64 *child_tid;
int64 *parent_tid; int64 *parent_tid;
int32 flags; int32 flags;
byte pad_godefs_0[4]; byte Pad_cgo_0[4];
Rtprio *rtp; Rtprio *rtp;
void* spare[3]; void *spare[3];
}; };
typedef struct Sigaltstack Sigaltstack;
struct Sigaltstack { struct Sigaltstack {
int8 *ss_sp; int8 *ss_sp;
uint64 ss_size; uint64 ss_size;
int32 ss_flags; int32 ss_flags;
byte pad_godefs_0[4]; byte Pad_cgo_0[4];
}; };
typedef struct Sigset Sigset;
struct Sigset { struct Sigset {
uint32 __bits[4]; uint32 __bits[4];
};
typedef union Sigval Sigval;
union Sigval {
int32 sival_int;
void *sival_ptr;
int32 sigval_int;
void *sigval_ptr;
}; };
typedef struct StackT StackT;
struct StackT { struct StackT {
int8 *ss_sp; int8 *ss_sp;
uint64 ss_size; uint64 ss_size;
int32 ss_flags; int32 ss_flags;
byte pad_godefs_0[4]; byte Pad_cgo_0[4];
}; };
typedef struct Siginfo Siginfo;
struct Siginfo { struct Siginfo {
int32 si_signo; int32 si_signo;
int32 si_errno; int32 si_errno;
int32 si_code; int32 si_code;
int32 si_pid; int32 si_pid;
uint32 si_uid; uint32 si_uid;
int32 si_status; int32 si_status;
void *si_addr; byte *si_addr;
Sigval si_value; byte si_value[8];
byte _reason[40]; byte _reason[40];
}; };
typedef struct Mcontext Mcontext;
struct Mcontext { struct Mcontext {
int64 mc_onstack; int64 mc_onstack;
int64 mc_rdi; int64 mc_rdi;
int64 mc_rsi; int64 mc_rsi;
int64 mc_rdx; int64 mc_rdx;
int64 mc_rcx; int64 mc_rcx;
int64 mc_r8; int64 mc_r8;
int64 mc_r9; int64 mc_r9;
int64 mc_rax; int64 mc_rax;
int64 mc_rbx; int64 mc_rbx;
int64 mc_rbp; int64 mc_rbp;
int64 mc_r10; int64 mc_r10;
int64 mc_r11; int64 mc_r11;
int64 mc_r12; int64 mc_r12;
int64 mc_r13; int64 mc_r13;
int64 mc_r14; int64 mc_r14;
int64 mc_r15; int64 mc_r15;
uint32 mc_trapno; uint32 mc_trapno;
uint16 mc_fs; uint16 mc_fs;
uint16 mc_gs; uint16 mc_gs;
int64 mc_addr; int64 mc_addr;
uint32 mc_flags; uint32 mc_flags;
uint16 mc_es; uint16 mc_es;
uint16 mc_ds; uint16 mc_ds;
int64 mc_err; int64 mc_err;
int64 mc_rip; int64 mc_rip;
int64 mc_cs; int64 mc_cs;
int64 mc_rflags; int64 mc_rflags;
int64 mc_rsp; int64 mc_rsp;
int64 mc_ss; int64 mc_ss;
int64 mc_len; int64 mc_len;
int64 mc_fpformat; int64 mc_fpformat;
int64 mc_ownedfp; int64 mc_ownedfp;
int64 mc_fpstate[64]; int64 mc_fpstate[64];
int64 mc_fsbase; int64 mc_fsbase;
int64 mc_gsbase; int64 mc_gsbase;
int64 mc_spare[6]; int64 mc_spare[6];
}; };
typedef struct Ucontext Ucontext;
struct Ucontext { struct Ucontext {
Sigset uc_sigmask; Sigset uc_sigmask;
Mcontext uc_mcontext; Mcontext uc_mcontext;
Ucontext *uc_link; Ucontext *uc_link;
StackT uc_stack; StackT uc_stack;
int32 uc_flags; int32 uc_flags;
int32 __spare__[4]; int32 __spare__[4];
byte pad_godefs_0[12]; byte Pad_cgo_0[12];
}; };
typedef struct Timespec Timespec;
struct Timespec { struct Timespec {
int64 tv_sec; int64 tv_sec;
int64 tv_nsec; int64 tv_nsec;
}; };
typedef struct Timeval Timeval;
struct Timeval { struct Timeval {
int64 tv_sec; int64 tv_sec;
int64 tv_usec; int64 tv_usec;
}; };
typedef struct Itimerval Itimerval;
struct Itimerval { struct Itimerval {
Timeval it_interval; Timeval it_interval;
Timeval it_value; Timeval it_value;
}; };
#pragma pack off #pragma pack off
// godefs -f -m32 defs.c // Created by cgo -cdefs - DO NOT EDIT
// cgo -cdefs defs_freebsd.go
// MACHINE GENERATED - DO NOT EDIT.
// Constants
enum { enum {
PROT_NONE = 0, PROT_NONE = 0x0,
PROT_READ = 0x1, PROT_READ = 0x1,
PROT_WRITE = 0x2, PROT_WRITE = 0x2,
PROT_EXEC = 0x4, PROT_EXEC = 0x4,
MAP_ANON = 0x1000,
MAP_PRIVATE = 0x2, MAP_ANON = 0x1000,
MAP_FIXED = 0x10, MAP_PRIVATE = 0x2,
MADV_FREE = 0x5, MAP_FIXED = 0x10,
SA_SIGINFO = 0x40,
SA_RESTART = 0x2, MADV_FREE = 0x5,
SA_ONSTACK = 0x1,
UMTX_OP_WAIT = 0x2, SA_SIGINFO = 0x40,
UMTX_OP_WAKE = 0x3, SA_RESTART = 0x2,
EINTR = 0x4, SA_ONSTACK = 0x1,
SIGHUP = 0x1,
SIGINT = 0x2, UMTX_OP_WAIT = 0x2,
SIGQUIT = 0x3, UMTX_OP_WAKE = 0x3,
SIGILL = 0x4,
SIGTRAP = 0x5, EINTR = 0x4,
SIGABRT = 0x6,
SIGEMT = 0x7, SIGHUP = 0x1,
SIGFPE = 0x8, SIGINT = 0x2,
SIGKILL = 0x9, SIGQUIT = 0x3,
SIGBUS = 0xa, SIGILL = 0x4,
SIGSEGV = 0xb, SIGTRAP = 0x5,
SIGSYS = 0xc, SIGABRT = 0x6,
SIGPIPE = 0xd, SIGEMT = 0x7,
SIGALRM = 0xe, SIGFPE = 0x8,
SIGTERM = 0xf, SIGKILL = 0x9,
SIGURG = 0x10, SIGBUS = 0xa,
SIGSTOP = 0x11, SIGSEGV = 0xb,
SIGTSTP = 0x12, SIGSYS = 0xc,
SIGCONT = 0x13, SIGPIPE = 0xd,
SIGCHLD = 0x14, SIGALRM = 0xe,
SIGTTIN = 0x15, SIGTERM = 0xf,
SIGTTOU = 0x16, SIGURG = 0x10,
SIGIO = 0x17, SIGSTOP = 0x11,
SIGXCPU = 0x18, SIGTSTP = 0x12,
SIGXFSZ = 0x19, SIGCONT = 0x13,
SIGVTALRM = 0x1a, SIGCHLD = 0x14,
SIGPROF = 0x1b, SIGTTIN = 0x15,
SIGWINCH = 0x1c, SIGTTOU = 0x16,
SIGINFO = 0x1d, SIGIO = 0x17,
SIGUSR1 = 0x1e, SIGXCPU = 0x18,
SIGUSR2 = 0x1f, SIGXFSZ = 0x19,
FPE_INTDIV = 0x2, SIGVTALRM = 0x1a,
FPE_INTOVF = 0x1, SIGPROF = 0x1b,
FPE_FLTDIV = 0x3, SIGWINCH = 0x1c,
FPE_FLTOVF = 0x4, SIGINFO = 0x1d,
FPE_FLTUND = 0x5, SIGUSR1 = 0x1e,
FPE_FLTRES = 0x6, SIGUSR2 = 0x1f,
FPE_FLTINV = 0x7,
FPE_FLTSUB = 0x8, FPE_INTDIV = 0x2,
BUS_ADRALN = 0x1, FPE_INTOVF = 0x1,
BUS_ADRERR = 0x2, FPE_FLTDIV = 0x3,
BUS_OBJERR = 0x3, FPE_FLTOVF = 0x4,
SEGV_MAPERR = 0x1, FPE_FLTUND = 0x5,
SEGV_ACCERR = 0x2, FPE_FLTRES = 0x6,
ITIMER_REAL = 0, FPE_FLTINV = 0x7,
ITIMER_VIRTUAL = 0x1, FPE_FLTSUB = 0x8,
ITIMER_PROF = 0x2,
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 #pragma pack on
typedef struct Rtprio Rtprio;
struct Rtprio { struct Rtprio {
uint16 type; uint16 type;
uint16 prio; uint16 prio;
}; };
typedef struct ThrParam ThrParam;
struct ThrParam { struct ThrParam {
void *start_func; void *start_func;
void *arg; byte *arg;
int8 *stack_base; uint8 *stack_base;
uint32 stack_size; uint32 stack_size;
int8 *tls_base; uint8 *tls_base;
uint32 tls_size; uint32 tls_size;
int32 *child_tid; int32 *child_tid;
int32 *parent_tid; int32 *parent_tid;
int32 flags; int32 flags;
Rtprio *rtp; Rtprio *rtp;
void* spare[3]; void *spare[3];
}; };
typedef struct Sigaltstack Sigaltstack;
struct Sigaltstack { struct Sigaltstack {
int8 *ss_sp; uint8 *ss_sp;
uint32 ss_size; uint32 ss_size;
int32 ss_flags; int32 ss_flags;
}; };
typedef struct Sigset Sigset;
struct Sigset { struct Sigset {
uint32 __bits[4]; uint32 __bits[4];
};
typedef union Sigval Sigval;
union Sigval {
int32 sival_int;
void *sival_ptr;
int32 sigval_int;
void *sigval_ptr;
}; };
typedef struct StackT StackT;
struct StackT { struct StackT {
int8 *ss_sp; uint8 *ss_sp;
uint32 ss_size; uint32 ss_size;
int32 ss_flags; int32 ss_flags;
}; };
typedef struct Siginfo Siginfo;
struct Siginfo { struct Siginfo {
int32 si_signo; int32 si_signo;
int32 si_errno; int32 si_errno;
int32 si_code; int32 si_code;
int32 si_pid; int32 si_pid;
uint32 si_uid; uint32 si_uid;
int32 si_status; int32 si_status;
void *si_addr; byte *si_addr;
Sigval si_value; byte si_value[4];
byte _reason[32]; byte _reason[32];
}; };
typedef struct Mcontext Mcontext;
struct Mcontext { struct Mcontext {
uint32 r0; uint32 __gregs[17];
uint32 r1; byte __fpu[140];
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
}; };
typedef struct Ucontext Ucontext;
struct Ucontext { struct Ucontext {
Sigset uc_sigmask; Sigset uc_sigmask;
Mcontext uc_mcontext; Mcontext uc_mcontext;
Ucontext *uc_link; Ucontext *uc_link;
StackT uc_stack; StackT uc_stack;
int32 uc_flags; int32 uc_flags;
int32 __spare__[4]; int32 __spare__[4];
byte pad_godefs_0[12];
}; };
typedef struct Timespec Timespec;
struct Timespec { struct Timespec {
int64 tv_sec; // FreeBSD/ARM uses int64 for time_t int64 tv_sec;
int32 tv_nsec; int32 tv_nsec;
}; };
typedef struct Timeval Timeval;
struct Timeval { struct Timeval {
int64 tv_sec; // FreeBSD/ARM uses int64 for time_t int64 tv_sec;
int32 tv_usec; int32 tv_usec;
}; };
typedef struct Itimerval Itimerval;
struct Itimerval { struct Itimerval {
Timeval it_interval; Timeval it_interval;
Timeval it_value; Timeval it_value;
}; };
#pragma pack off #pragma pack off
...@@ -7,6 +7,24 @@ ...@@ -7,6 +7,24 @@
#include "signals_GOOS.h" #include "signals_GOOS.h"
#include "os_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 void
runtime·dumpregs(Mcontext *r) runtime·dumpregs(Mcontext *r)
{ {
...@@ -118,7 +136,7 @@ runtime·signalstack(byte *p, int32 n) ...@@ -118,7 +136,7 @@ runtime·signalstack(byte *p, int32 n)
{ {
Sigaltstack st; Sigaltstack st;
st.ss_sp = (int8*)p; st.ss_sp = (uint8*)p;
st.ss_size = n; st.ss_size = n;
st.ss_flags = 0; st.ss_flags = 0;
runtime·sigaltstack(&st, nil); runtime·sigaltstack(&st, nil);
......
...@@ -94,12 +94,12 @@ runtime·newosproc(M *m, G *g, void *stk, void (*fn)(void)) ...@@ -94,12 +94,12 @@ runtime·newosproc(M *m, G *g, void *stk, void (*fn)(void))
runtime·memclr((byte*)&param, sizeof param); runtime·memclr((byte*)&param, sizeof param);
param.start_func = runtime·thr_start; param.start_func = runtime·thr_start;
param.arg = m; param.arg = (byte*)m;
param.stack_base = (int8*)g->stackbase; param.stack_base = (void*)g->stackbase;
param.stack_size = (byte*)stk - (byte*)g->stackbase; param.stack_size = (byte*)stk - (byte*)g->stackbase;
param.child_tid = (intptr*)&m->procid; param.child_tid = (intptr*)&m->procid;
param.parent_tid = nil; param.parent_tid = nil;
param.tls_base = (int8*)&m->tls[0]; param.tls_base = (void*)&m->tls[0];
param.tls_size = sizeof m->tls; param.tls_size = sizeof m->tls;
m->tls[0] = m->id; // so 386 asm can find it m->tls[0] = m->id; // so 386 asm can find it
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment