mirror of
https://github.com/golang/go
synced 2024-11-19 21:04:43 -07:00
d4c4f4d2c4
if we were to use sizeof(sa.sa_mask) instead of 8 as the last argument to rt_sigaction, we would have already fixed this bug, so also updated Linux/386 and Linux/amd64 files to use that; also test the return value of rt_sigaction. R=dave, rsc CC=golang-dev https://golang.org/cl/6297087
44 lines
1.3 KiB
C
44 lines
1.3 KiB
C
// 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.
|
|
|
|
#define SIG_DFL ((void*)0)
|
|
#define SIG_IGN ((void*)1)
|
|
|
|
// Linux-specific system calls
|
|
int32 runtime·futex(uint32*, int32, uint32, Timespec*, uint32*, uint32);
|
|
int32 runtime·clone(int32, void*, M*, G*, void(*)(void));
|
|
|
|
struct Sigaction;
|
|
int32 runtime·rt_sigaction(uintptr, struct Sigaction*, void*, uintptr);
|
|
void runtime·setsig(int32, void(*)(int32, Siginfo*, void*, G*), bool);
|
|
void runtime·sighandler(int32 sig, Siginfo *info, void *context, G *gp);
|
|
|
|
void runtime·sigaltstack(Sigaltstack*, Sigaltstack*);
|
|
void runtime·sigpanic(void);
|
|
void runtime·setitimer(int32, Itimerval*, Itimerval*);
|
|
|
|
void runtime·raisesigpipe(void);
|
|
|
|
#define NSIG 65
|
|
#define SI_USER 0
|
|
|
|
// It's hard to tease out exactly how big a Sigset is, but
|
|
// rt_sigprocmask crashes if we get it wrong, so if binaries
|
|
// are running, this is right.
|
|
typedef struct Sigset Sigset;
|
|
struct Sigset
|
|
{
|
|
uint32 mask[2];
|
|
};
|
|
void runtime·rtsigprocmask(int32, Sigset*, Sigset*, int32);
|
|
#define SIG_SETMASK 2
|
|
|
|
#define RLIMIT_AS 9
|
|
typedef struct Rlimit Rlimit;
|
|
struct Rlimit {
|
|
uintptr rlim_cur;
|
|
uintptr rlim_max;
|
|
};
|
|
int32 runtime·getrlimit(int32, Rlimit*);
|