+// Copyright 2013 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 interp
// Emulated functions that we cannot interpret because they are
return syscall.Getpid()
}
-func ext۰syscall۰Kill(fn *ssa.Function, args []value, slots []value) value {
- // We could emulate syscall.Syscall but it's more effort.
- err := syscall.Kill(args[0].(int), syscall.Signal(args[1].(int)))
- err = err // TODO(adonovan): fix: adapt concrete err to interpreted iface (e.g. call interpreted errors.New)
- return iface{}
-}
-
-func ext۰syscall۰Write(fn *ssa.Function, args []value, slots []value) value {
- // We could emulate syscall.Syscall but it's more effort.
- p := args[1].([]value)
- b := make([]byte, 0, len(p))
- for i := range p {
- b = append(b, p[i].(byte))
- }
- n, _ := syscall.Write(args[0].(int), b)
- err := iface{} // TODO(adonovan): fix: adapt concrete err to interpreted iface.
- return tuple{n, err}
-
-}
-
// The set of remaining native functions we need to implement (as needed):
// bytes/bytes.go:42:func Equal(a, b []byte) bool
--- /dev/null
+// Copyright 2013 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.
+
+// +build !windows,!plan9
+
+package interp
+
+import (
+ "exp/ssa"
+ "syscall"
+)
+
+func ext۰syscall۰Kill(fn *ssa.Function, args []value, slots []value) value {
+ // We could emulate syscall.Syscall but it's more effort.
+ err := syscall.Kill(args[0].(int), syscall.Signal(args[1].(int)))
+ err = err // TODO(adonovan): fix: adapt concrete err to interpreted iface (e.g. call interpreted errors.New)
+ return iface{}
+}
+
+func ext۰syscall۰Write(fn *ssa.Function, args []value, slots []value) value {
+ // We could emulate syscall.Syscall but it's more effort.
+ p := args[1].([]value)
+ b := make([]byte, 0, len(p))
+ for i := range p {
+ b = append(b, p[i].(byte))
+ }
+ n, _ := syscall.Write(args[0].(int), b)
+ err := iface{} // TODO(adonovan): fix: adapt concrete err to interpreted iface.
+ return tuple{n, err}
+
+}
--- /dev/null
+// Copyright 2013 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.
+
+// +build windows plan9
+
+package interp
+
+import (
+ "exp/ssa"
+)
+
+func ext۰syscall۰Kill(fn *ssa.Function, args []value, slots []value) value {
+ panic("syscall.Kill not yet implemented")
+}
+
+func ext۰syscall۰Write(fn *ssa.Function, args []value, slots []value) value {
+ panic("syscall.Write not yet implemented")
+}