summaryrefslogtreecommitdiff
path: root/src/pkg/runtime/windows/syscall.goc
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2011-01-17 12:40:45 +0100
committerOndřej Surý <ondrej@sury.org>2011-01-17 12:40:45 +0100
commit3e45412327a2654a77944249962b3652e6142299 (patch)
treebc3bf69452afa055423cbe0c5cfa8ca357df6ccf /src/pkg/runtime/windows/syscall.goc
parentc533680039762cacbc37db8dc7eed074c3e497be (diff)
downloadgolang-upstream/2011.01.12.tar.gz
Imported Upstream version 2011.01.12upstream/2011.01.12
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;