diff options
Diffstat (limited to 'src/runtime/os_solaris.h')
-rw-r--r-- | src/runtime/os_solaris.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/runtime/os_solaris.h b/src/runtime/os_solaris.h new file mode 100644 index 000000000..3d9e1a240 --- /dev/null +++ b/src/runtime/os_solaris.h @@ -0,0 +1,55 @@ +// Copyright 2014 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. + + +typedef uintptr kevent_udata; + +struct sigaction; + +void runtime·sigpanic(void); + +void runtime·setitimer(int32, Itimerval*, Itimerval*); +void runtime·sigaction(int32, struct SigactionT*, struct SigactionT*); +void runtime·sigaltstack(SigaltstackT*, SigaltstackT*); +void runtime·sigprocmask(int32, Sigset*, Sigset*); +void runtime·unblocksignals(void); +int32 runtime·sysctl(uint32*, uint32, byte*, uintptr*, byte*, uintptr); + + +void runtime·raisesigpipe(void); +void runtime·setsig(int32, void(*)(int32, Siginfo*, void*, G*), bool); +void runtime·sighandler(int32 sig, Siginfo *info, void *context, G *gp); +void runtime·sigpanic(void); + +enum { + SS_DISABLE = 2, + SIG_BLOCK = 1, + SIG_UNBLOCK = 2, + SIG_SETMASK = 3, + NSIG = 73, /* number of signals in runtime·SigTab array */ + SI_USER = 0, + _UC_SIGMASK = 0x01, + _UC_CPU = 0x04, + RLIMIT_AS = 10, +}; + +typedef struct Rlimit Rlimit; +struct Rlimit { + int64 rlim_cur; + int64 rlim_max; +}; +int32 runtime·getrlimit(int32, Rlimit*); + +// Call an external library function described by {fn, a0, ..., an}, with +// SysV conventions, switching to os stack during the call, if necessary. +uintptr runtime·sysvicall0(uintptr fn); +uintptr runtime·sysvicall1(uintptr fn, uintptr a1); +uintptr runtime·sysvicall2(uintptr fn, uintptr a1, uintptr a2); +uintptr runtime·sysvicall3(uintptr fn, uintptr a1, uintptr a2, uintptr a3); +uintptr runtime·sysvicall4(uintptr fn, uintptr a1, uintptr a2, uintptr a3, uintptr a4); +uintptr runtime·sysvicall5(uintptr fn, uintptr a1, uintptr a2, uintptr a3, uintptr a4, uintptr a5); +uintptr runtime·sysvicall6(uintptr fn, uintptr a1, uintptr a2, uintptr a3, uintptr a4, uintptr a5, uintptr a6); +void runtime·asmsysvicall6(void *c); + +void runtime·miniterrno(void *fn); |