2014-07-11 Edward Smith-Rowland <3dw4rd@verizon.net>
[official-gcc.git] / libgo / runtime / go-varargs.c
blob705f55ee20bd4f58dcdcb9e3291c8202fc44d96b
1 /* go-varargs.c -- functions for calling C varargs functions.
3 Copyright 2013 The Go Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style
5 license that can be found in the LICENSE file. */
7 #include "config.h"
9 #include <sys/types.h>
10 #include <fcntl.h>
12 /* The syscall package calls C functions. The Go compiler can not
13 represent a C varargs functions. On some systems it's important
14 that the declaration of a function match the call. This function
15 holds non-varargs C functions that the Go code can call. */
17 int
18 __go_open (char *path, int mode, mode_t perm)
20 return open (path, mode, perm);
23 int
24 __go_fcntl (int fd, int cmd, int arg)
26 return fcntl (fd, cmd, arg);
29 int
30 __go_fcntl_flock (int fd, int cmd, struct flock *arg)
32 return fcntl (fd, cmd, arg);
35 #ifdef HAVE_OPEN64
37 int
38 __go_open64 (char *path, int mode, mode_t perm)
40 return open64 (path, mode, perm);
43 #endif
45 #ifdef HAVE_OPENAT
47 int
48 __go_openat (int fd, char *path, int flags, mode_t mode)
50 return openat (fd, path, flags, mode);
53 #endif