liyujie
2025-08-28 d9927380ed7c8366f762049be9f3fee225860833
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// 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.
 
// +build ignore
 
/*
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
 
   MADV_DONTNEED = C.MADV_DONTNEED
 
   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 Timespec C.struct_timespec
type StackT C.stack_t
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