// Copyright 2015 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.// +build gccgo// +build !aix#include <errno.h>#include <stdint.h>#include <unistd.h>#define _STRINGIFY2_(x) #x#define _STRINGIFY_(x) _STRINGIFY2_(x)#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__)// Call syscall from C code because the gccgo support for calling from// Go to C does not support varargs functions.structret{uintptr_tr;uintptr_terr;};structretgccgoRealSyscall(uintptr_ttrap,uintptr_ta1,uintptr_ta2,uintptr_ta3,uintptr_ta4,uintptr_ta5,uintptr_ta6,uintptr_ta7,uintptr_ta8,uintptr_ta9){structretr;errno=0;r.r=syscall(trap,a1,a2,a3,a4,a5,a6,a7,a8,a9);r.err=errno;returnr;}uintptr_tgccgoRealSyscallNoError(uintptr_ttrap,uintptr_ta1,uintptr_ta2,uintptr_ta3,uintptr_ta4,uintptr_ta5,uintptr_ta6,uintptr_ta7,uintptr_ta8,uintptr_ta9){returnsyscall(trap,a1,a2,a3,a4,a5,a6,a7,a8,a9);}