// 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);