summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorDavid Symonds <dsymonds@golang.org>2009-05-26 20:38:57 -0700
committerDavid Symonds <dsymonds@golang.org>2009-05-26 20:38:57 -0700
commitdf199034a7421a501fd63c9c0fa3eed9a10c8d75 (patch)
tree196e47773ef7e032738eeda17d194daf64c0a509 /src/lib
parent18ad7e8decfb5ce21d9386bdec846214f6c1eb21 (diff)
downloadgolang-df199034a7421a501fd63c9c0fa3eed9a10c8d75.tar.gz
Getrusage for linux.
R=rsc APPROVED=rsc DELTA=40 (38 added, 0 deleted, 2 changed) OCL=29351 CL=29422
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/syscall/Makefile5
-rw-r--r--src/lib/syscall/proc_darwin.go15
-rw-r--r--src/lib/syscall/proc_linux.go19
-rw-r--r--src/lib/syscall/types_amd64_linux.go5
4 files changed, 42 insertions, 2 deletions
diff --git a/src/lib/syscall/Makefile b/src/lib/syscall/Makefile
index ae4c2c11a..8c28d08ff 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 000000000..f93acf6ee
--- /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 000000000..e4e376081
--- /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 a71606a5b..218cf769e 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;