package runtime
+import "internal/goarch"
+
const (
_EINTR = 0x4
_EAGAIN = 0xb
si_code int32
// below here is a union; si_addr is the only field we use
si_addr uint32
+
+ // Pad struct to the max size in the kernel. Account for the 3 32-bit
+ // fields, the alignment to this architecture's pointer size, and the final
+ // pointer-length field.
+ _ [_si_max_size - (3*4 + (1-4/goarch.PtrSize)*4 + 1*goarch.PtrSize)]byte
}
type stackt struct {
notify int32
// below here is a union; sigev_notify_thread_id is the only field we use
sigev_notify_thread_id int32
+
+ // Pad struct to the max size in the kernel. Account for the pointer-length
+ // field and the 3 32-bit fields.
+ _ [_sigev_max_size - (1*goarch.PtrSize + 3*4)]byte
}
type epollevent struct {
package runtime
+import "internal/goarch"
+
const (
_EINTR = 0x4
_EAGAIN = 0xb
si_code int32
// below here is a union; si_addr is the only field we use
si_addr uint64
+
+ // Pad struct to the max size in the kernel. Account for the 3 32-bit
+ // fields, the alignment to this architecture's pointer size, and the final
+ // pointer-length field.
+ _ [_si_max_size - (3*4 + (1-4/goarch.PtrSize)*4 + 1*goarch.PtrSize)]byte
}
type itimerspec struct {
notify int32
// below here is a union; sigev_notify_thread_id is the only field we use
sigev_notify_thread_id int32
+
+ // Pad struct to the max size in the kernel. Account for the pointer-length
+ // field and the 3 32-bit fields.
+ _ [_sigev_max_size - (1*goarch.PtrSize + 3*4)]byte
}
type epollevent struct {
package runtime
+import "internal/goarch"
+
// Constants
const (
_EINTR = 0x4
notify int32
// below here is a union; sigev_notify_thread_id is the only field we use
sigev_notify_thread_id int32
+
+ // Pad struct to the max size in the kernel. Account for the pointer-length
+ // field and the 3 32-bit fields.
+ _ [_sigev_max_size - (1*goarch.PtrSize + 3*4)]byte
}
type siginfo struct {
si_code int32
// below here is a union; si_addr is the only field we use
si_addr uint32
+
+ // Pad struct to the max size in the kernel. Account for the 3 32-bit
+ // fields, the alignment to this architecture's pointer size, and the final
+ // pointer-length field.
+ _ [_si_max_size - (3*4 + (1-4/goarch.PtrSize)*4 + 1*goarch.PtrSize)]byte
}
type sigactiont struct {
package runtime
+import "internal/goarch"
+
const (
_EINTR = 0x4
_EAGAIN = 0xb
si_code int32
// below here is a union; si_addr is the only field we use
si_addr uint64
+
+ // Pad struct to the max size in the kernel. Account for the 3 32-bit
+ // fields, the alignment to this architecture's pointer size, and the final
+ // pointer-length field.
+ _ [_si_max_size - (3*4 + (1-4/goarch.PtrSize)*4 + 1*goarch.PtrSize)]byte
}
type itimerspec struct {
notify int32
// below here is a union; sigev_notify_thread_id is the only field we use
sigev_notify_thread_id int32
+
+ // Pad struct to the max size in the kernel. Account for the pointer-length
+ // field and the 3 32-bit fields.
+ _ [_sigev_max_size - (1*goarch.PtrSize + 3*4)]byte
}
type epollevent struct {
package runtime
+import "internal/goarch"
+
const (
_EINTR = 0x4
_EAGAIN = 0xb
__pad0 [1]int32
// below here is a union; si_addr is the only field we use
si_addr uint64
+
+ // Pad struct to the max size in the kernel. Account for the 3 32-bit
+ // fields, the alignment to this architecture's pointer size, and the final
+ // pointer-length field.
+ _ [_si_max_size - (3*4 + (1-4/goarch.PtrSize)*4 + 1*goarch.PtrSize)]byte
}
type itimerspec struct {
notify int32
// below here is a union; sigev_notify_thread_id is the only field we use
sigev_notify_thread_id int32
+
+ // Pad struct to the max size in the kernel. Account for the pointer-length
+ // field and the 3 32-bit fields.
+ _ [_sigev_max_size - (1*goarch.PtrSize + 3*4)]byte
}
type epollevent struct {
package runtime
+import "internal/goarch"
+
const (
_EINTR = 0x4
_EAGAIN = 0xb
si_errno int32
// below here is a union; si_addr is the only field we use
si_addr uint32
+
+ // Pad struct to the max size in the kernel. Account for the 3 32-bit
+ // fields, the alignment to this architecture's pointer size, and the final
+ // pointer-length field.
+ _ [_si_max_size - (3*4 + (1-4/goarch.PtrSize)*4 + 1*goarch.PtrSize)]byte
}
type itimerspec struct {
notify int32
// below here is a union; sigev_notify_thread_id is the only field we use
sigev_notify_thread_id int32
+
+ // Pad struct to the max size in the kernel. Account for the pointer-length
+ // field and the 3 32-bit fields.
+ _ [_sigev_max_size - (1*goarch.PtrSize + 3*4)]byte
}
type epollevent struct {
package runtime
+import "internal/goarch"
+
const (
_EINTR = 0x4
_EAGAIN = 0xb
si_code int32
// below here is a union; si_addr is the only field we use
si_addr uint64
+
+ // Pad struct to the max size in the kernel. Account for the 3 32-bit
+ // fields, the alignment to this architecture's pointer size, and the final
+ // pointer-length field.
+ _ [_si_max_size - (3*4 + (1-4/goarch.PtrSize)*4 + 1*goarch.PtrSize)]byte
}
type itimerspec struct {
notify int32
// below here is a union; sigev_notify_thread_id is the only field we use
sigev_notify_thread_id int32
+
+ // Pad struct to the max size in the kernel. Account for the pointer-length
+ // field and the 3 32-bit fields.
+ _ [_sigev_max_size - (1*goarch.PtrSize + 3*4)]byte
}
type epollevent struct {
package runtime
+import "internal/goarch"
+
const (
_EINTR = 0x4
_EAGAIN = 0xb
si_code int32
// below here is a union; si_addr is the only field we use
si_addr uint64
+
+ // Pad struct to the max size in the kernel. Account for the 3 32-bit
+ // fields, the alignment to this architecture's pointer size, and the final
+ // pointer-length field.
+ _ [_si_max_size - (3*4 + (1-4/goarch.PtrSize)*4 + 1*goarch.PtrSize)]byte
}
type itimerspec struct {
notify int32
// below here is a union; sigev_notify_thread_id is the only field we use
sigev_notify_thread_id int32
+
+ // Pad struct to the max size in the kernel. Account for the pointer-length
+ // field and the 3 32-bit fields.
+ _ [_sigev_max_size - (1*goarch.PtrSize + 3*4)]byte
}
type epollevent struct {
package runtime
+import "internal/goarch"
+
const (
_EINTR = 0x4
_EAGAIN = 0xb
si_code int32
// below here is a union; si_addr is the only field we use
si_addr uint64
+
+ // Pad struct to the max size in the kernel. Account for the 3 32-bit
+ // fields, the alignment to this architecture's pointer size, and the final
+ // pointer-length field.
+ _ [_si_max_size - (3*4 + (1-4/goarch.PtrSize)*4 + 1*goarch.PtrSize)]byte
}
type itimerspec struct {
notify int32
// below here is a union; sigev_notify_thread_id is the only field we use
sigev_notify_thread_id int32
+
+ // Pad struct to the max size in the kernel. Account for the pointer-length
+ // field and the 3 32-bit fields.
+ _ [_sigev_max_size - (1*goarch.PtrSize + 3*4)]byte
}
type epollevent struct {
package runtime
+import "internal/goarch"
+
const (
_EINTR = 0x4
_EAGAIN = 0xb
si_code int32
// below here is a union; si_addr is the only field we use
si_addr uint64
+
+ // Pad struct to the max size in the kernel. Account for the 3 32-bit
+ // fields, the alignment to this architecture's pointer size, and the final
+ // pointer-length field.
+ _ [_si_max_size - (3*4 + (1-4/goarch.PtrSize)*4 + 1*goarch.PtrSize)]byte
}
type itimerspec struct {
notify int32
// below here is a union; sigev_notify_thread_id is the only field we use
sigev_notify_thread_id int32
+
+ // Pad struct to the max size in the kernel. Account for the pointer-length
+ // field and the 3 32-bit fields.
+ _ [_sigev_max_size - (1*goarch.PtrSize + 3*4)]byte
}
type epollevent struct {
func pipe2(flags int32) (r, w int32, errno int32)
func setNonblock(fd int32)
+const (
+ _si_max_size = 128
+ _sigev_max_size = 64
+)
+
+// Assert that the Go definitions of structures exchanged with the kernel are
+// the same size as what the kernel defines.
+var (
+ _ [_si_max_size]struct{} = [unsafe.Sizeof(siginfo{})]struct{}{}
+ _ [_sigev_max_size]struct{} = [unsafe.Sizeof(sigevent{})]struct{}{}
+)
+
//go:nosplit
//go:nowritebarrierrec
func setsig(i uint32, fn uintptr) {