]>
Commit | Line | Data |
---|---|---|
9b12e4fe JC |
1 | // Copyright 2015 The Go Authors. All rights reserved. |
2 | // Use of this source code is governed by a BSD-style | |
3 | // license that can be found in the LICENSE file. | |
4 | ||
5 | // +build gccgo | |
6 | ||
7 | package unix | |
8 | ||
9 | import "syscall" | |
10 | ||
11 | // We can't use the gc-syntax .s files for gccgo. On the plus side | |
12 | // much of the functionality can be written directly in Go. | |
13 | ||
14 | //extern gccgoRealSyscall | |
15 | func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr) | |
16 | ||
17 | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { | |
18 | syscall.Entersyscall() | |
19 | r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) | |
20 | syscall.Exitsyscall() | |
21 | return r, 0, syscall.Errno(errno) | |
22 | } | |
23 | ||
24 | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { | |
25 | syscall.Entersyscall() | |
26 | r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) | |
27 | syscall.Exitsyscall() | |
28 | return r, 0, syscall.Errno(errno) | |
29 | } | |
30 | ||
31 | func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) { | |
32 | syscall.Entersyscall() | |
33 | r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9) | |
34 | syscall.Exitsyscall() | |
35 | return r, 0, syscall.Errno(errno) | |
36 | } | |
37 | ||
38 | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { | |
39 | r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) | |
40 | return r, 0, syscall.Errno(errno) | |
41 | } | |
42 | ||
43 | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { | |
44 | r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) | |
45 | return r, 0, syscall.Errno(errno) | |
46 | } |