lin
2025-06-05 ed3dd9d3e7519a82bb871d5eedb24a2fa0c91f47
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
// 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 -cdefs
 
GOARCH=386 go tool cgo -cdefs defs2_linux.go >defs_linux_386.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/tmp/linux/arch/x86/include -I/tmp/linux/include -D_LOOSE_KERNEL_NAMES -D__ARCH_SI_UID_T=__kernel_uid32_t
 
#define size_t __kernel_size_t
#define pid_t int
#include <asm/signal.h>
#include <asm/mman.h>
#include <asm/sigcontext.h>
#include <asm/ucontext.h>
#include <asm/siginfo.h>
#include <asm-generic/errno.h>
#include <asm-generic/fcntl.h>
#include <asm-generic/poll.h>
#include <linux/eventpoll.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);
   unsigned long long sa_mask;
};
*/
import "C"
 
const (
   EINTR  = C.EINTR
   EAGAIN = C.EAGAIN
   ENOMEM = C.ENOMEM
 
   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
   MADV_FREE       = C.MADV_FREE
   MADV_HUGEPAGE   = C.MADV_HUGEPAGE
   MADV_NOHUGEPAGE = C.MADV_HNOUGEPAGE
 
   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
 
   EPOLLIN       = C.POLLIN
   EPOLLOUT      = C.POLLOUT
   EPOLLERR      = C.POLLERR
   EPOLLHUP      = C.POLLHUP
   EPOLLRDHUP    = C.POLLRDHUP
   EPOLLET       = C.EPOLLET
   EPOLL_CLOEXEC = C.EPOLL_CLOEXEC
   EPOLL_CTL_ADD = C.EPOLL_CTL_ADD
   EPOLL_CTL_DEL = C.EPOLL_CTL_DEL
   EPOLL_CTL_MOD = C.EPOLL_CTL_MOD
)
 
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 StackT C.stack_t
type Sigcontext C.struct_sigcontext
type Ucontext C.struct_ucontext
type Itimerval C.struct_itimerval
type EpollEvent C.struct_epoll_event