diff options
Diffstat (limited to 'src/runtime/os_linux.h')
-rw-r--r-- | src/runtime/os_linux.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/runtime/os_linux.h b/src/runtime/os_linux.h new file mode 100644 index 000000000..75606d615 --- /dev/null +++ b/src/runtime/os_linux.h @@ -0,0 +1,41 @@ +// 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. + + +// Linux-specific system calls +int32 runtime·futex(uint32*, int32, uint32, Timespec*, uint32*, uint32); +int32 runtime·clone(int32, void*, M*, G*, void(*)(void)); + +struct SigactionT; +int32 runtime·rt_sigaction(uintptr, struct SigactionT*, void*, uintptr); + +void runtime·sigaltstack(SigaltstackT*, SigaltstackT*); +void runtime·sigpanic(void); +void runtime·setitimer(int32, Itimerval*, Itimerval*); + +enum { + SS_DISABLE = 2, + NSIG = 65, + SI_USER = 0, + SIG_SETMASK = 2, + RLIMIT_AS = 9, +}; + +// 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); +void runtime·unblocksignals(void); + +typedef struct Rlimit Rlimit; +struct Rlimit { + uintptr rlim_cur; + uintptr rlim_max; +}; +int32 runtime·getrlimit(int32, Rlimit*); |