1// Copyright 2016 The Go Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// The standard GNU/Linux sigset type on big-endian 64-bit machines. 6 7// +build linux 8// +build ppc64 s390x 9 10package runtime 11 12const ( 13 _SS_DISABLE = 2 14 _NSIG = 65 15 _SI_USER = 0 16 _SIG_BLOCK = 0 17 _SIG_UNBLOCK = 1 18 _SIG_SETMASK = 2 19) 20 21type sigset uint64 22 23var sigset_all = sigset(^uint64(0)) 24 25//go:nosplit 26//go:nowritebarrierrec 27func sigaddset(mask *sigset, i int) { 28 if i > 64 { 29 throw("unexpected signal greater than 64") 30 } 31 *mask |= 1 << (uint(i) - 1) 32} 33 34func sigdelset(mask *sigset, i int) { 35 if i > 64 { 36 throw("unexpected signal greater than 64") 37 } 38 *mask &^= 1 << (uint(i) - 1) 39} 40 41func sigfillset(mask *uint64) { 42 *mask = ^uint64(0) 43} 44