diff options
author | Tianon Gravi <admwiggin@gmail.com> | 2015-01-15 11:54:00 -0700 |
---|---|---|
committer | Tianon Gravi <admwiggin@gmail.com> | 2015-01-15 11:54:00 -0700 |
commit | f154da9e12608589e8d5f0508f908a0c3e88a1bb (patch) | |
tree | f8255d51e10c6f1e0ed69702200b966c9556a431 /src/pkg/runtime/syscall_solaris.goc | |
parent | 8d8329ed5dfb9622c82a9fbec6fd99a580f9c9f6 (diff) | |
download | golang-upstream/1.4.tar.gz |
Imported Upstream version 1.4upstream/1.4
Diffstat (limited to 'src/pkg/runtime/syscall_solaris.goc')
-rw-r--r-- | src/pkg/runtime/syscall_solaris.goc | 374 |
1 files changed, 0 insertions, 374 deletions
diff --git a/src/pkg/runtime/syscall_solaris.goc b/src/pkg/runtime/syscall_solaris.goc deleted file mode 100644 index 21bcce4d1..000000000 --- a/src/pkg/runtime/syscall_solaris.goc +++ /dev/null @@ -1,374 +0,0 @@ -// 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. - -package syscall -#include "runtime.h" -#include "defs_GOOS_GOARCH.h" -#include "os_GOOS.h" -#include "cgocall.h" -#include "../../cmd/ld/textflag.h" - -#pragma dynimport libc·chdir chdir "libc.so" -#pragma dynimport libc·chroot chroot "libc.so" -#pragma dynimport libc·close close "libc.so" -#pragma dynimport libc·dlclose dlclose "libc.so" -#pragma dynimport libc·dlopen dlopen "libc.so" -#pragma dynimport libc·dlsym dlsym "libc.so" -#pragma dynimport libc·execve execve "libc.so" -#pragma dynimport libc·fcntl fcntl "libc.so" -#pragma dynimport libc·gethostname gethostname "libc.so" -#pragma dynimport libc·ioctl ioctl "libc.so" -#pragma dynimport libc·pipe pipe "libc.so" -#pragma dynimport libc·setgid setgid "libc.so" -#pragma dynimport libc·setgroups setgroups "libc.so" -#pragma dynimport libc·setsid setsid "libc.so" -#pragma dynimport libc·setuid setuid "libc.so" -#pragma dynimport libc·setpgid setsid "libc.so" -#pragma dynimport libc·syscall syscall "libc.so" -#pragma dynimport libc·forkx forkx "libc.so" -#pragma dynimport libc·wait4 wait4 "libc.so" -extern uintptr libc·chdir; -extern uintptr libc·chroot; -extern uintptr libc·close; -extern uintptr libc·dlclose; -extern uintptr libc·dlopen; -extern uintptr libc·dlsym; -extern uintptr libc·execve; -extern uintptr libc·exit; -extern uintptr libc·fcntl; -extern uintptr libc·gethostname; -extern uintptr libc·ioctl; -extern uintptr libc·pipe; -extern uintptr libc·setgid; -extern uintptr libc·setgroups; -extern uintptr libc·setsid; -extern uintptr libc·setuid; -extern uintptr libc·setpgid; -extern uintptr libc·syscall; -extern uintptr libc·forkx; -extern uintptr libc·wait4; -extern uintptr libc·write; - -func sysvicall6(func uintptr, nargs uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 uintptr, a6 uintptr) (r1 uintptr, r2 uintptr, err uintptr) -{ - LibCall c; - - USED(a2); - USED(a3); - USED(a4); - USED(a5); - USED(a6); - c.fn = (void*)func; - c.n = nargs; - c.args = (void*)&a1; - runtime·cgocall(runtime·asmsysvicall6, &c); - err = c.err; - r1 = c.r1; - r2 = c.r2; -} - -#pragma textflag NOSPLIT -func rawSysvicall6(func uintptr, nargs uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 uintptr, a6 uintptr) (r1 uintptr, r2 uintptr, err uintptr) -{ - LibCall c; - - USED(a2); - USED(a3); - USED(a4); - USED(a5); - USED(a6); - c.fn = (void*)func; - c.n = nargs; - c.args = (void*)&a1; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; - r1 = c.r1; - r2 = c.r2; -} - -#pragma textflag NOSPLIT -func chdir(path uintptr) (err uintptr) { - LibCall c; - - c.fn = (void*)libc·chdir; - c.n = 1; - c.args = (void*)&path; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; -} - -#pragma textflag NOSPLIT -func chroot1(path uintptr) (err uintptr) { - LibCall c; - - c.fn = (void*)libc·chroot; - c.n = 1; - c.args = (void*)&path; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; -} - -#pragma textflag NOSPLIT -func close(fd uintptr) (err uintptr) { - LibCall c; - - c.fn = (void*)libc·close; - c.n = 1; - c.args = (void*)&fd; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; -} - -func dlclose(handle uintptr) (err uintptr) { - LibCall c; - - USED(handle); - c.fn = (void*)libc·dlclose; - c.n = 1; - c.args = (void*)&handle; - runtime·cgocall(runtime·asmsysvicall6, &c); - err = c.r1; -} - -func dlopen(name *uint8, mode uintptr) (handle uintptr, err uintptr) { - LibCall c; - - USED(mode); - c.fn = (void*)libc·dlopen; - c.n = 2; - c.args = (void*)&name; - runtime·cgocall(runtime·asmsysvicall6, &c); - handle = c.r1; - if(handle == 0) - err = c.err; - else - err = 0; -} - -func dlsym(handle uintptr, name *uint8) (proc uintptr, err uintptr) { - LibCall c; - - USED(name); - c.fn = (void*)libc·dlsym; - c.n = 2; - c.args = &handle; - runtime·cgocall(runtime·asmsysvicall6, &c); - proc = c.r1; - if(proc == 0) - err = c.err; - else - err = 0; -} - -#pragma textflag NOSPLIT -func execve(path uintptr, argv uintptr, envp uintptr) (err uintptr) { - LibCall c; - - USED(argv); - USED(envp); - c.fn = (void*)libc·execve; - c.n = 3; - c.args = (void*)&path; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; -} - -#pragma textflag NOSPLIT -func exit(code uintptr) { - LibCall c; - - c.fn = (void*)libc·exit; - c.n = 1; - c.args = (void*)&code; - runtime·asmcgocall(runtime·asmsysvicall6, &c); -} - -#pragma textflag NOSPLIT -func fcntl1(fd uintptr, cmd uintptr, arg uintptr) (val uintptr, err uintptr) { - LibCall c; - - USED(cmd); - USED(arg); - c.fn = (void*)libc·fcntl; - c.n = 3; - c.args = (void*)&fd; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; - val = c.r1; -} - -func gethostname() (name String, err uintptr) { - struct { uintptr v[2]; } args; - uint8 cname[MAXHOSTNAMELEN]; - LibCall c; - - c.fn = (void*)libc·gethostname; - c.n = 2; - args.v[0] = (uintptr)&cname[0]; - args.v[1] = MAXHOSTNAMELEN; - c.args = (void*)&args; - runtime·cgocall(runtime·asmsysvicall6, &c); - err = c.err; - if(c.r1) { - name = runtime·emptystring; - return; - } - cname[MAXHOSTNAMELEN - 1] = 0; - name = runtime·gostring(cname); -} - -#pragma textflag NOSPLIT -func ioctl(fd uintptr, req uintptr, arg uintptr) (err uintptr) { - LibCall c; - - USED(req); - USED(arg); - c.fn = (void*)libc·ioctl; - c.n = 3; - c.args = (void*)&fd; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; -} - -func wait4(pid uintptr, wstatus *uint32, options uintptr, rusage *void) (wpid int, err uintptr) { - LibCall c; - - USED(wstatus); - USED(options); - USED(rusage); - c.fn = (void*)libc·wait4; - c.n = 4; - c.args = (void*)&pid; - runtime·cgocall(runtime·asmsysvicall6, &c); - err = c.err; - wpid = c.r1; -} - -#pragma textflag NOSPLIT -func setgid(gid uintptr) (err uintptr) { - LibCall c; - - c.fn = (void*)libc·setgid; - c.n = 1; - c.args = (void*)&gid; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; -} - -#pragma textflag NOSPLIT -func setgroups1(ngid uintptr, gid uintptr) (err uintptr) { - LibCall c; - - USED(gid); - c.fn = (void*)libc·setgroups; - c.n = 2; - c.args = (void*)&ngid; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; -} - -#pragma textflag NOSPLIT -func setsid() (pid uintptr, err uintptr) { - LibCall c; - - c.fn = (void*)libc·setsid; - c.n = 0; - c.args = (void*)0; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; - pid = c.r1; -} - -#pragma textflag NOSPLIT -func setuid(uid uintptr) (err uintptr) { - LibCall c; - - c.fn = (void*)libc·setuid; - c.n = 1; - c.args = (void*)&uid; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; -} - -#pragma textflag NOSPLIT -func setpgid(pid uintptr, pgid uintptr) (err uintptr) { - LibCall c; - - USED(pgid); - c.fn = (void*)libc·setpgid; - c.n = 2; - c.args = (void*)&pid; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; -} - -#pragma textflag NOSPLIT -func forkx(flags uintptr) (pid uintptr, err uintptr) { - LibCall c; - - c.fn = (void*)libc·forkx; - c.n = 1; - c.args = (void*)&flags; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; - pid = c.r1; -} - -void runtime·pipe1(void); - -func pipe() (r uintptr, w uintptr, err uintptr) { - LibCall c; - - c.fn = (void*)runtime·pipe1; - c.n = 0; - c.args = (void*)0; - runtime·cgocall(runtime·asmsysvicall6, &c); - err = c.err; - r = c.r1; - w = c.r2; -} - -#pragma textflag NOSPLIT -func write1(fd uintptr, buf uintptr, nbyte uintptr) (n uintptr, err uintptr) { - LibCall c; - - USED(buf); - USED(nbyte); - c.fn = (void*)libc·write; - c.n = 3; - c.args = (void*)fd; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; - n = c.r1; -} - -func Syscall(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r2 uintptr, err uintptr) { - LibCall c; - - USED(a1); - USED(a2); - USED(a3); - c.fn = (void*)libc·syscall; - c.n = 4; - c.args = &trap; - runtime·cgocall(runtime·asmsysvicall6, &c); - err = c.err; - r1 = c.r1; - r2 = c.r2; -} - -func RawSyscall(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r2 uintptr, err uintptr) { - LibCall c; - - USED(a1); - USED(a2); - USED(a3); - c.fn = (void*)libc·syscall; - c.n = 4; - c.args = &trap; - runtime·asmcgocall(runtime·asmsysvicall6, &c); - err = c.err; - r1 = c.r1; - r2 = c.r2; -} |