summaryrefslogtreecommitdiff
path: root/src/pkg/runtime/windows/syscall.goc
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/runtime/windows/syscall.goc')
-rw-r--r--src/pkg/runtime/windows/syscall.goc54
1 files changed, 36 insertions, 18 deletions
diff --git a/src/pkg/runtime/windows/syscall.goc b/src/pkg/runtime/windows/syscall.goc
index 362217e6b..d3057c540 100644
--- a/src/pkg/runtime/windows/syscall.goc
+++ b/src/pkg/runtime/windows/syscall.goc
@@ -8,24 +8,22 @@ package syscall
func loadlibraryex(filename uintptr) (handle uint32) {
StdcallParams p;
- p.fn = (void*)LoadLibraryEx;
+ p.fn = (void*)runtime·LoadLibraryEx;
p.args[0] = filename;
p.args[1] = 0;
p.args[2] = 0;
- ·entersyscall();
- syscall(&p);
- ·exitsyscall();
+ p.n = 3;
+ runtime·syscall(&p);
handle = p.r;
}
func getprocaddress(handle uint32, procname uintptr) (proc uintptr) {
StdcallParams p;
- p.fn = (void*)GetProcAddress;
+ p.fn = (void*)runtime·GetProcAddress;
p.args[0] = handle;
p.args[1] = procname;
- ·entersyscall();
- syscall(&p);
- ·exitsyscall();
+ p.n = 2;
+ runtime·syscall(&p);
proc = p.r;
}
@@ -35,9 +33,8 @@ func Syscall(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r2 u
p.args[0] = a1;
p.args[1] = a2;
p.args[2] = a3;
- ·entersyscall();
- syscall(&p);
- ·exitsyscall();
+ p.n = 3;
+ runtime·syscall(&p);
r1 = p.r;
r2 = 0;
err = p.err;
@@ -52,9 +49,8 @@ func Syscall6(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 u
p.args[3] = a4;
p.args[4] = a5;
p.args[5] = a6;
- ·entersyscall();
- syscall(&p);
- ·exitsyscall();
+ p.n = 6;
+ runtime·syscall(&p);
r1 = p.r;
r2 = 0;
err = p.err;
@@ -72,9 +68,30 @@ func Syscall9(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 u
p.args[6] = a7;
p.args[7] = a8;
p.args[8] = a9;
- ·entersyscall();
- syscall(&p);
- ·exitsyscall();
+ p.n = 9;
+ runtime·syscall(&p);
+ r1 = p.r;
+ r2 = 0;
+ lasterr = p.err;
+}
+
+func Syscall12(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 uintptr, a6 uintptr, a7 uintptr, a8 uintptr, a9 uintptr, a10 uintptr, a11 uintptr, a12 uintptr) (r1 uintptr, r2 uintptr, lasterr uintptr) {
+ StdcallParams p;
+ p.fn = (void*)trap;
+ p.args[0] = a1;
+ p.args[1] = a2;
+ p.args[2] = a3;
+ p.args[3] = a4;
+ p.args[4] = a5;
+ p.args[5] = a6;
+ p.args[6] = a7;
+ p.args[7] = a8;
+ p.args[8] = a9;
+ p.args[9] = a10;
+ p.args[10] = a11;
+ p.args[11] = a12;
+ p.n = 12;
+ runtime·syscall(&p);
r1 = p.r;
r2 = 0;
lasterr = p.err;
@@ -86,7 +103,8 @@ func RawSyscall(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r
p.args[0] = a1;
p.args[1] = a2;
p.args[2] = a3;
- syscall(&p);
+ p.n = 3;
+ runtime·syscall(&p);
r1 = p.r;
r2 = 0;
err = p.err;