Browse Source

unix: add Syscall9 for gccgo

I meant to do this earlier but forget to "git add".

Change-Id: I14b777b5b9fa5b121809c5821719da3ec4a5e0ce
Reviewed-on: https://go-review.googlesource.com/9960
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
Ian Lance Taylor 10 years ago
parent
commit
b65462c961
2 changed files with 14 additions and 7 deletions
  1. 12 5
      unix/gccgo.go
  2. 2 2
      unix/gccgo_c.c

+ 12 - 5
unix/gccgo.go

@@ -12,28 +12,35 @@ import "syscall"
 // much of the functionality can be written directly in Go.
 
 //extern gccgoRealSyscall
-func realSyscall(trap, a1, a2, a3, a4, a5, a6 uintptr) (r, errno uintptr)
+func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr)
 
 func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
 	syscall.Entersyscall()
-	r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0)
+	r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
 	syscall.Exitsyscall()
 	return r, 0, syscall.Errno(errno)
 }
 
 func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
 	syscall.Entersyscall()
-	r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6)
+	r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)
+	syscall.Exitsyscall()
+	return r, 0, syscall.Errno(errno)
+}
+
+func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+	syscall.Entersyscall()
+	r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9)
 	syscall.Exitsyscall()
 	return r, 0, syscall.Errno(errno)
 }
 
 func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
-	r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0)
+	r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
 	return r, 0, syscall.Errno(errno)
 }
 
 func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
-	r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6)
+	r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)
 	return r, 0, syscall.Errno(errno)
 }

+ 2 - 2
unix/gccgo_c.c

@@ -21,12 +21,12 @@ struct ret {
 };
 
 struct ret
-gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6)
+gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)
 {
 	struct ret r;
 
 	errno = 0;
-	r.r = syscall(trap, a1, a2, a3, a4, a5, a6);
+	r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);
 	r.err = errno;
 	return r;
 }