aboutsummaryrefslogtreecommitdiff
path: root/libgo/syscalls
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2011-01-12 06:34:08 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2011-01-12 06:34:08 +0000
commitf2ee78b861b8daab2675e1a24798b1069f763dc0 (patch)
treef6ea31c859488c93306c1cfb3148540b52d840b5 /libgo/syscalls
parentc3b5b97b64685cee2635d0dc61425a5add983a39 (diff)
downloadgcc-f2ee78b861b8daab2675e1a24798b1069f763dc0.zip
gcc-f2ee78b861b8daab2675e1a24798b1069f763dc0.tar.gz
gcc-f2ee78b861b8daab2675e1a24798b1069f763dc0.tar.bz2
Preliminary framework for Solaris support.
Partly from Rainer Orth. From-SVN: r168697
Diffstat (limited to 'libgo/syscalls')
-rw-r--r--libgo/syscalls/syscall_solaris.go7
-rw-r--r--libgo/syscalls/syscall_solaris_386.go19
-rw-r--r--libgo/syscalls/syscall_solaris_amd64.go23
-rw-r--r--libgo/syscalls/syscall_solaris_sparc.go7
-rw-r--r--libgo/syscalls/syscall_solaris_sparcv9.go7
5 files changed, 63 insertions, 0 deletions
diff --git a/libgo/syscalls/syscall_solaris.go b/libgo/syscalls/syscall_solaris.go
new file mode 100644
index 0000000..ec22933
--- /dev/null
+++ b/libgo/syscalls/syscall_solaris.go
@@ -0,0 +1,7 @@
+// syscall_solaris.go -- Solaris 2 specific syscall interface.
+
+// Copyright 2011 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
diff --git a/libgo/syscalls/syscall_solaris_386.go b/libgo/syscalls/syscall_solaris_386.go
new file mode 100644
index 0000000..20e8b5d
--- /dev/null
+++ b/libgo/syscalls/syscall_solaris_386.go
@@ -0,0 +1,19 @@
+// syscall_solaris_386.go -- Solaris/x86 specific support
+
+// Copyright 2011 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
+
+import "unsafe"
+
+const ARCH = "386"
+
+// FIXME: ptrace(3C) has this, but exec.go expects the next.
+//func libc_ptrace(request int, pid Pid_t, addr int, data int) int __asm__ ("ptrace")
+
+func libc_ptrace(request int, pid Pid_t, addr uintptr, data *byte) int __asm__ ("ptrace")
+
+var dummy *byte
+const sizeofPtr uintptr = uintptr(unsafe.Sizeof(dummy))
diff --git a/libgo/syscalls/syscall_solaris_amd64.go b/libgo/syscalls/syscall_solaris_amd64.go
new file mode 100644
index 0000000..628e781
--- /dev/null
+++ b/libgo/syscalls/syscall_solaris_amd64.go
@@ -0,0 +1,23 @@
+// syscall_solaris_amd64.go -- Solaris/x64 specific support
+
+// Copyright 2011 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
+
+import "unsafe"
+
+const ARCH = "amd64"
+
+// FIXME: ptrace(3C) has this, but exec.go expects the next.
+//func libc_ptrace(request int, pid Pid_t, addr int, data int) int __asm__ ("ptrace")
+
+// 64-bit ptrace(3C) doesn't exist
+func libc_ptrace(request int, pid Pid_t, addr uintptr, data *byte) int {
+ errno := ENOSYS
+ return -1
+}
+
+var dummy *byte
+const sizeofPtr uintptr = uintptr(unsafe.Sizeof(dummy))
diff --git a/libgo/syscalls/syscall_solaris_sparc.go b/libgo/syscalls/syscall_solaris_sparc.go
new file mode 100644
index 0000000..91758d5
--- /dev/null
+++ b/libgo/syscalls/syscall_solaris_sparc.go
@@ -0,0 +1,7 @@
+// syscall_solaris_sparc.go -- Solaris SPARC specific support
+
+// Copyright 2011 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
diff --git a/libgo/syscalls/syscall_solaris_sparcv9.go b/libgo/syscalls/syscall_solaris_sparcv9.go
new file mode 100644
index 0000000..f371dd2
--- /dev/null
+++ b/libgo/syscalls/syscall_solaris_sparcv9.go
@@ -0,0 +1,7 @@
+// syscall_solaris_v9.go -- Solaris sparc9v specific support
+
+// Copyright 2011 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