]> Cypherpunks repositories - gostls13.git/commitdiff
Getrusage for linux.
authorDavid Symonds <dsymonds@golang.org>
Wed, 27 May 2009 03:38:57 +0000 (20:38 -0700)
committerDavid Symonds <dsymonds@golang.org>
Wed, 27 May 2009 03:38:57 +0000 (20:38 -0700)
R=rsc
APPROVED=rsc
DELTA=40  (38 added, 0 deleted, 2 changed)
OCL=29351
CL=29422

src/lib/syscall/Makefile
src/lib/syscall/proc_darwin.go [new file with mode: 0644]
src/lib/syscall/proc_linux.go [new file with mode: 0644]
src/lib/syscall/types_amd64_linux.go

index ae4c2c11a20c4bf831c8cbd9729ea606d9f63bdd..8c28d08ff6efa3de82286880b07affef42c426b4 100644 (file)
@@ -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 (file)
index 0000000..f93acf6
--- /dev/null
@@ -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 (file)
index 0000000..e4e3760
--- /dev/null
@@ -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
+}
index a71606a5bd884a4f161da4a65fb82ec8709c4d57..218cf769e49cc2910fc5a2736187c40b0966aee3 100644 (file)
@@ -28,6 +28,11 @@ type Timeval struct {
 
 // Processes
 
+const (
+       RUSAGE_SELF = 0;
+       RUSAGE_CHILDREN = -1;
+)
+
 type Rusage struct {
        Utime   Timeval;
        Stime   Timeval;