1
0
mirror of https://github.com/golang/go synced 2024-10-05 08:21:22 -06:00
go/src/lib/syscall/syscall.go
Russ Cox 6201a963f1 move src/syscall to src/lib/syscall.
enforce rule: all kernel data structures and constants
	go in syscall module.
move things that should be in syscall out of net.
make net a single package.

R=r
OCL=15985
CL=15994
2008-09-26 14:11:26 -07:00

32 lines
831 B
Go

// Copyright 2009 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
/*
* Foundation of system call interface.
*/
export func Syscall(trap int64, a1, a2, a3 int64) (r1, r2, err int64);
export func Syscall6(trap int64, a1, a2, a3, a4, a5, a6 int64) (r1, r2, err int64);
export func BytePtr(b *byte) int64;
export func Int32Ptr(p *int32) int64;
export func Int64Ptr(p *int64) int64;
/*
* Used to convert file names to byte arrays for passing to kernel,
* but useful elsewhere too.
*/
export func StringToBytes(b *[]byte, s string) bool {
if len(s) >= len(b) {
return false
}
for i := 0; i < len(s); i++ {
b[i] = s[i]
}
b[len(s)] = '\000'; // not necessary - memory is zeroed - but be explicit
return true
}