2016-03-18 17:09:39 -06:00
|
|
|
// Copyright 2016 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.
|
|
|
|
|
2016-10-06 16:14:58 -06:00
|
|
|
// The standard GNU/Linux sigset type on big-endian 64-bit machines.
|
|
|
|
|
2018-03-07 06:07:31 -07:00
|
|
|
// +build linux
|
2016-10-06 16:14:58 -06:00
|
|
|
// +build ppc64 s390x
|
|
|
|
|
2016-03-18 17:09:39 -06:00
|
|
|
package runtime
|
|
|
|
|
|
|
|
const (
|
|
|
|
_SS_DISABLE = 2
|
|
|
|
_NSIG = 65
|
|
|
|
_SI_USER = 0
|
|
|
|
_SIG_BLOCK = 0
|
|
|
|
_SIG_UNBLOCK = 1
|
|
|
|
_SIG_SETMASK = 2
|
|
|
|
)
|
|
|
|
|
|
|
|
type sigset uint64
|
|
|
|
|
|
|
|
var sigset_all = sigset(^uint64(0))
|
|
|
|
|
2016-09-27 14:42:28 -06:00
|
|
|
//go:nosplit
|
|
|
|
//go:nowritebarrierrec
|
2016-03-18 17:09:39 -06:00
|
|
|
func sigaddset(mask *sigset, i int) {
|
|
|
|
if i > 64 {
|
|
|
|
throw("unexpected signal greater than 64")
|
|
|
|
}
|
|
|
|
*mask |= 1 << (uint(i) - 1)
|
|
|
|
}
|
|
|
|
|
|
|
|
func sigdelset(mask *sigset, i int) {
|
|
|
|
if i > 64 {
|
|
|
|
throw("unexpected signal greater than 64")
|
|
|
|
}
|
|
|
|
*mask &^= 1 << (uint(i) - 1)
|
|
|
|
}
|
|
|
|
|
|
|
|
func sigfillset(mask *uint64) {
|
|
|
|
*mask = ^uint64(0)
|
|
|
|
}
|