diff --git a/src/lib/syscall/Makefile b/src/lib/syscall/Makefile index ae4c2c11a2..8c28d08ff6 100644 --- a/src/lib/syscall/Makefile +++ b/src/lib/syscall/Makefile @@ -3,7 +3,7 @@ # license that can be found in the LICENSE file. # DO NOT EDIT. Automatically generated by gobuild. -# gobuild -m errstr_${GOOS}.go file_${GOOS}.go socket_${GOOS}.go syscall_${GOARCH}_${GOOS}.go time_${GOARCH}_${GOOS}.go types_${GOARCH}_${GOOS}.go asm_${GOARCH}_${GOOS}.s syscall.go signal_${GOARCH}_${GOOS}.go exec.go >Makefile +# gobuild -m errstr_${GOOS}.go file_${GOOS}.go socket_${GOOS}.go syscall_${GOARCH}_${GOOS}.go time_${GOARCH}_${GOOS}.go types_${GOARCH}_${GOOS}.go asm_${GOARCH}_${GOOS}.s syscall.go signal_${GOARCH}_${GOOS}.go exec.go proc_${GOOS}.go >Makefile D= @@ -51,6 +51,7 @@ O2=\ O3=\ file_$(GOOS).$O\ + proc_$(GOOS).$O\ socket_$(GOOS).$O\ time_$(GOARCH)_$(GOOS).$O\ @@ -70,7 +71,7 @@ a2: $(O2) rm -f $(O2) a3: $(O3) - $(AR) grc _obj$D/syscall.a file_$(GOOS).$O socket_$(GOOS).$O time_$(GOARCH)_$(GOOS).$O + $(AR) grc _obj$D/syscall.a file_$(GOOS).$O proc_$(GOOS).$O socket_$(GOOS).$O time_$(GOARCH)_$(GOOS).$O rm -f $(O3) a4: $(O4) diff --git a/src/lib/syscall/proc_darwin.go b/src/lib/syscall/proc_darwin.go new file mode 100644 index 0000000000..f93acf6ee9 --- /dev/null +++ b/src/lib/syscall/proc_darwin.go @@ -0,0 +1,15 @@ +// 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 + +// Process operations for Darwin +// TODO: +// - getrusage +// - getrlimit, setrlimit + +import ( + "syscall"; + "unsafe"; +) diff --git a/src/lib/syscall/proc_linux.go b/src/lib/syscall/proc_linux.go new file mode 100644 index 0000000000..e4e3760813 --- /dev/null +++ b/src/lib/syscall/proc_linux.go @@ -0,0 +1,19 @@ +// 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 + +// Process operations for Linux +// TODO: +// - getrlimit, setrlimit + +import ( + "syscall"; + "unsafe"; +) + +func Getrusage(who int64, usage *Rusage) (ret, errno int64) { + r1, r2, err := Syscall(SYS_GETRUSAGE, who, int64(uintptr(unsafe.Pointer(usage))), 0); + return r1, err +} diff --git a/src/lib/syscall/types_amd64_linux.go b/src/lib/syscall/types_amd64_linux.go index a71606a5bd..218cf769e4 100644 --- a/src/lib/syscall/types_amd64_linux.go +++ b/src/lib/syscall/types_amd64_linux.go @@ -28,6 +28,11 @@ type Timeval struct { // Processes +const ( + RUSAGE_SELF = 0; + RUSAGE_CHILDREN = -1; +) + type Rusage struct { Utime Timeval; Stime Timeval;