public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
* [SCM]  master: Rename Stat.zero to Stat.numThreads; Update; Test.
@ 2008-02-14 18:10 cagney
  0 siblings, 0 replies; only message in thread
From: cagney @ 2008-02-14 18:10 UTC (permalink / raw)
  To: frysk-cvs

The branch, master has been updated
       via  4b2ea8d18773d7a72663c59a6817828be8cd8bbc (commit)
      from  e5a826018181d156023024ce27a707bbfb62c0a0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 4b2ea8d18773d7a72663c59a6817828be8cd8bbc
Author: Andrew Cagney <cagney@redhat.com>
Date:   Thu Feb 14 13:09:11 2008 -0500

    Rename Stat.zero to Stat.numThreads; Update; Test.
    
    frysk-core/frysk/isa/corefiles/ChangeLog
    2008-02-14  Andrew Cagney  <cagney@redhat.com>
    
    	* IA32LinuxElfCorefile.java: Update to match Stat.numThreads.
    	* X8664LinuxElfCorefile.java: Ditto.
    	* PPC64LinuxElfCorefile.java: Ditto.
    	* PPC32LinuxElfCorefile.java: Ditto.
    
    frysk-core/frysk/testbed/ChangeLog
    2008-02-14  Andrew Cagney  <cagney@redhat.com>
    
    	* StatState.java: Update to match Stat rewrite.
    
    frysk-sys/frysk/sys/proc/ChangeLog
    2008-02-14  Andrew Cagney  <cagney@redhat.com>
    
    	* Stat.java (toString()): New.
    	(fine): New.
    	(Stat(int)): Delete.
    	(scan(byte[])): New.
    	(rescan()): New.
    	(pid): Rename tid.
    	(numThreads): Rename .zero.
    	* TestStat.java: New.
    	* cni/Stat.cxx (Stat::scan): Update.

-----------------------------------------------------------------------

Summary of changes:
 frysk-core/frysk/isa/corefiles/ChangeLog           |    5 +
 .../frysk/isa/corefiles/IA32LinuxElfCorefile.java  |    7 +-
 .../frysk/isa/corefiles/PPC32LinuxElfCorefile.java |    5 +-
 .../frysk/isa/corefiles/PPC64LinuxElfCorefile.java |    5 +-
 .../frysk/isa/corefiles/X8664LinuxElfCorefile.java |    4 +-
 frysk-core/frysk/testbed/ChangeLog                 |    4 +
 frysk-core/frysk/testbed/StatState.java            |    2 +-
 frysk-sys/frysk/sys/proc/ChangeLog                 |   10 ++
 frysk-sys/frysk/sys/proc/Stat.java                 |   34 +++--
 frysk-sys/frysk/sys/proc/TestStat.java             |  114 +++++++++++++
 frysk-sys/frysk/sys/proc/cni/Stat.cxx              |  169 ++++++++------------
 11 files changed, 231 insertions(+), 128 deletions(-)
 create mode 100644 frysk-sys/frysk/sys/proc/TestStat.java

First 500 lines of diff:
diff --git a/frysk-core/frysk/isa/corefiles/ChangeLog b/frysk-core/frysk/isa/corefiles/ChangeLog
index 086d81c..ec9ac97 100644
--- a/frysk-core/frysk/isa/corefiles/ChangeLog
+++ b/frysk-core/frysk/isa/corefiles/ChangeLog
@@ -1,5 +1,10 @@
 2008-02-14  Andrew Cagney  <cagney@redhat.com>
 
+	* IA32LinuxElfCorefile.java: Update to match Stat.numThreads.
+	* X8664LinuxElfCorefile.java: Ditto.
+	* PPC64LinuxElfCorefile.java: Ditto.
+	* PPC32LinuxElfCorefile.java: Ditto.
+	
 	* IA32LinuxElfCorefile.java: Delete use of Status.
 	* PPC64LinuxElfCorefile.java: Ditto.
 	* PPC32LinuxElfCorefile.java: Ditto.
diff --git a/frysk-core/frysk/isa/corefiles/IA32LinuxElfCorefile.java b/frysk-core/frysk/isa/corefiles/IA32LinuxElfCorefile.java
index 7fc5bcc..0090778 100644
--- a/frysk-core/frysk/isa/corefiles/IA32LinuxElfCorefile.java
+++ b/frysk-core/frysk/isa/corefiles/IA32LinuxElfCorefile.java
@@ -104,10 +104,9 @@ public class IA32LinuxElfCorefile extends LinuxElfCorefile {
 
 	String midStr = null;
 
-	// Transform processStat.zero(int) into char.
-	if ((processStat.zero >= 0) && (processStat.zero < 10)) {
-	    midStr = String.valueOf(processStat.zero);
-
+	// Transform processStat.numThreads(int) into char.
+	if ((processStat.numThreads >= 0) && (processStat.numThreads < 10)) {
+	    midStr = String.valueOf(processStat.numThreads);
 	    prpsInfo.setPrZomb(midStr.charAt(0));
 	}
 
diff --git a/frysk-core/frysk/isa/corefiles/PPC32LinuxElfCorefile.java b/frysk-core/frysk/isa/corefiles/PPC32LinuxElfCorefile.java
index e418179..51177fd 100644
--- a/frysk-core/frysk/isa/corefiles/PPC32LinuxElfCorefile.java
+++ b/frysk-core/frysk/isa/corefiles/PPC32LinuxElfCorefile.java
@@ -110,9 +110,8 @@ public class PPC32LinuxElfCorefile extends LinuxElfCorefile {
 	String midStr = null;
 
 	// Transform processStat.zero(int) into char.
-	if ((processStat.zero >= 0) && (processStat.zero < 10)) {
-	    midStr = String.valueOf(processStat.zero);
-
+	if ((processStat.numThreads >= 0) && (processStat.numThreads < 10)) {
+	    midStr = String.valueOf(processStat.numThreads);
 	    prpsInfo.setPrZomb(midStr.charAt(0));
 	}
 
diff --git a/frysk-core/frysk/isa/corefiles/PPC64LinuxElfCorefile.java b/frysk-core/frysk/isa/corefiles/PPC64LinuxElfCorefile.java
index cf31acf..913f060 100644
--- a/frysk-core/frysk/isa/corefiles/PPC64LinuxElfCorefile.java
+++ b/frysk-core/frysk/isa/corefiles/PPC64LinuxElfCorefile.java
@@ -109,9 +109,8 @@ public class PPC64LinuxElfCorefile extends LinuxElfCorefile {
 	String midStr = null;
 
 	// Transform processStat.zero(int) into char.
-	if ((processStat.zero >= 0) && (processStat.zero < 10)) {
-	    midStr = String.valueOf(processStat.zero);
-
+	if ((processStat.numThreads >= 0) && (processStat.numThreads < 10)) {
+	    midStr = String.valueOf(processStat.numThreads);
 	    prpsInfo.setPrZomb(midStr.charAt(0));
 	}
 
diff --git a/frysk-core/frysk/isa/corefiles/X8664LinuxElfCorefile.java b/frysk-core/frysk/isa/corefiles/X8664LinuxElfCorefile.java
index 2a27a1b..ca78a28 100644
--- a/frysk-core/frysk/isa/corefiles/X8664LinuxElfCorefile.java
+++ b/frysk-core/frysk/isa/corefiles/X8664LinuxElfCorefile.java
@@ -105,8 +105,8 @@ public class X8664LinuxElfCorefile extends LinuxElfCorefile {
 	String midStr = null;
 
 	// Transform processStat.zero(int) into char.
-	if ((processStat.zero >= 0) && (processStat.zero < 10)) {
-	    midStr = String.valueOf(processStat.zero);
+	if ((processStat.numThreads >= 0) && (processStat.numThreads < 10)) {
+	    midStr = String.valueOf(processStat.numThreads);
 
 	    prpsInfo.setPrZomb(midStr.charAt(0));
 	}
diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog
index f0da174..a6a6ed6 100644
--- a/frysk-core/frysk/testbed/ChangeLog
+++ b/frysk-core/frysk/testbed/ChangeLog
@@ -1,3 +1,7 @@
+2008-02-14  Andrew Cagney  <cagney@redhat.com>
+
+	* StatState.java: Update to match Stat rewrite.
+
 2008-02-13  Andrew Cagney  <cagney@redhat.com>
 
 	* TestLib.java: Update to match Scan.
diff --git a/frysk-core/frysk/testbed/StatState.java b/frysk-core/frysk/testbed/StatState.java
index 83757f6..1472884 100644
--- a/frysk-core/frysk/testbed/StatState.java
+++ b/frysk-core/frysk/testbed/StatState.java
@@ -111,7 +111,7 @@ public class StatState {
 	}
 	public void execute() {
 	    stat.scan(pid);
-	    finest.log(state, "assertRunToState tid", stat.tid, "in",
+	    finest.log(state, "assertRunToState tid", stat.pid, "in",
 		       stat.state);
 	    if (state.state == stat.state) {
 		Manager.eventLoop.remove(this);
diff --git a/frysk-sys/frysk/sys/proc/ChangeLog b/frysk-sys/frysk/sys/proc/ChangeLog
index 0ba620c..6713af1 100644
--- a/frysk-sys/frysk/sys/proc/ChangeLog
+++ b/frysk-sys/frysk/sys/proc/ChangeLog
@@ -1,5 +1,15 @@
 2008-02-14  Andrew Cagney  <cagney@redhat.com>
 
+	* Stat.java (toString()): New.
+	(fine): New.
+	(Stat(int)): Delete.
+	(scan(byte[])): New.
+	(rescan()): New.
+	(pid): Rename tid.
+	(numThreads): Rename .zero.
+	* TestStat.java: New.
+	* cni/Stat.cxx (Stat::scan): Update.
+
 	* Status.java: Rewrite.
 	* TestStatus.java: Update.
 	* cni/Status.cxx (Status::scan): Update.
diff --git a/frysk-sys/frysk/sys/proc/Stat.java b/frysk-sys/frysk/sys/proc/Stat.java
index 2134727..d75da6b 100644
--- a/frysk-sys/frysk/sys/proc/Stat.java
+++ b/frysk-sys/frysk/sys/proc/Stat.java
@@ -40,23 +40,25 @@
 package frysk.sys.proc;
 
 import frysk.sys.ProcessIdentifier;
-import frysk.sys.ProcessIdentifierFactory;
+import frysk.rsl.Log;
 
 /**
  * The contents of <tt>/proc/PID/stat</tt> file.
  */
 public class Stat {
+    private static final Log fine = Log.fine(Stat.class);
+
     /**
      * Create an unbounded Stat object.
      */
     public Stat() {
-	this.tid = null;
     }
-    /**
-     * Create a Stat object for TID.
-     */
-    public Stat(int tid) {
-	this.tid = ProcessIdentifierFactory.create(tid);
+
+    public String toString() {
+	if (pid != null)
+	    return "/proc/" + pid + "/stat";
+	else
+	    return super.toString();
     }
 
     /**
@@ -66,11 +68,23 @@ public class Stat {
      * of scan problem.
      */
     public Stat scan(ProcessIdentifier pid) {
+	fine.log(this, "scan", pid);
 	return scan(pid.intValue());
     }
     private native Stat scan(int pid);
+    /**
+     * For testing; package-private.
+     */
+    native Stat scan(byte[] buf);
     
     /**
+     * Re-scan using the current pid.
+     */
+    public Stat rescan() {
+	return scan(pid.intValue());
+    }
+
+    /**
      * Refresh Stat from <tt>/proc/PID/task/TID/stat</tt>, return true if the
      * scan was successful.  Returns false when the file doesn't
      * exist, or can't be read.  Throws an error if there is some sort
@@ -82,7 +96,7 @@ public class Stat {
     private native Stat scan(int pid, int tid);
 
     /** The thread id (== pid in main thread)  */
-    public ProcessIdentifier tid;
+    public ProcessIdentifier pid;
     /** The filename of the executable.  */
     public String comm;
     /** The state represented by a character from "RSDZTW".  */
@@ -119,8 +133,8 @@ public class Stat {
     public long priority;
     /** The nice value.  */
     public int nice;
-    /** A hard coded zero.  */
-    public int zero;
+    /** The number of threads (since 2.6).  */
+    public int numThreads;
     /** The number of jiffies to the next SIGALRM.  */
     public long irealvalue;
     /** The number of jiffies, after system boot, that process started.  */
diff --git a/frysk-sys/frysk/sys/proc/TestStat.java b/frysk-sys/frysk/sys/proc/TestStat.java
new file mode 100644
index 0000000..f57c0e2
--- /dev/null
+++ b/frysk-sys/frysk/sys/proc/TestStat.java
@@ -0,0 +1,114 @@
+// This file is part of the program FRYSK.
+//
+// Copyright 2008, Red Hat Inc.
+//
+// FRYSK is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// FRYSK is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with FRYSK; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+// 
+// In addition, as a special exception, Red Hat, Inc. gives You the
+// additional right to link the code of FRYSK with code not covered
+// under the GNU General Public License ("Non-GPL Code") and to
+// distribute linked combinations including the two, subject to the
+// limitations in this paragraph. Non-GPL Code permitted under this
+// exception must only link to the code of FRYSK through those well
+// defined interfaces identified in the file named EXCEPTION found in
+// the source code files (the "Approved Interfaces"). The files of
+// Non-GPL Code may instantiate templates or use macros or inline
+// functions from the Approved Interfaces without causing the
+// resulting work to be covered by the GNU General Public
+// License. Only Red Hat, Inc. may make changes or additions to the
+// list of Approved Interfaces. You must obey the GNU General Public
+// License in all respects for all of the FRYSK code and other code
+// used in conjunction with FRYSK except the Non-GPL Code covered by
+// this exception. If you modify this file, you may extend this
+// exception to your version of the file, but you are not obligated to
+// do so. If you do not wish to provide this exception without
+// modification, you must delete this exception statement from your
+// version and license this file solely under the GPL without
+// exception.
+
+package frysk.sys.proc;
+
+import frysk.junit.TestCase;
+import frysk.sys.Pid;
+
+/**
+ * Test the Status getUID() and getGID() a predefined set of
+ * <tt>/proc$$/status</tt> buffer.
+ */
+
+public class TestStat extends TestCase {
+    public void testParse() {
+	// Construct valid status buffer
+	String[] statBuf = new String[] {
+	    "21023 (cat) R 19210 21023 19210 34821 21023",
+	    " 4194304 173 0 1 0 0 0 0 0 20 0 1",
+	    " 0 52915522 81854464 120 18446744073",
+	    " 4194304 4212676 140736230287520",
+	    " 3709551615 210676510208",
+	    " 0 0 0 0 0 0 0 17 1 0 0 2\n"
+	};
+	Stat stat = new Stat().scan(TestLib.stringsToBytes(statBuf));
+	assertNotNull("stat", stat);
+
+	assertEquals("pid", 21023, stat.pid.intValue());
+	assertEquals("comm", "cat", stat.comm);
+	assertEquals("state", 'R', stat.state);
+	assertEquals("ppid", 19210, stat.ppid.intValue());
+	assertEquals("pgrp", 21023, stat.pgrp);
+	assertEquals("session", 19210, stat.session);
+	assertEquals("ttyNr", 34821, stat.ttyNr);
+	assertEquals("tpgid", 21023, stat.tpgid);
+
+	assertEquals("flags", 4194304, stat.flags);
+	assertEquals("minflt", 173, stat.minflt);
+	assertEquals("cminflt", 0, stat.cminflt);
+	assertEquals("majflt", 1, stat.majflt);
+	assertEquals("cmajflt", 0, stat.cmajflt);
+	assertEquals("utime", 0, stat.utime);
+	assertEquals("stime", 0, stat.stime);
+	assertEquals("cutime", 0, stat.cutime);
+	assertEquals("cstime", 0, stat.cstime);
+	assertEquals("priority", 20, stat.priority);
+	assertEquals("nice", 0, stat.nice);
+	assertEquals("numThreads", 1, stat.numThreads);
+
+	assertEquals("irealvalue", 0, stat.irealvalue);
+	assertEquals("starttime", 52915522, stat.starttime);
+	assertEquals("vsize", 81854464, stat.vsize);
+	assertEquals("rss", 120, stat.rss);
+	assertEquals("rlim", 18446744073L, stat.rlim);
+
+	assertEquals("startcode",  4194304, stat.startcode);
+	assertEquals("endcode",  4212676, stat.endcode);
+	assertEquals("startstack",  140736230287520L, stat.startstack);
+
+	assertEquals("kstkesp", 3709551615L, stat.kstkesp);
+	assertEquals("kstkeip", 210676510208L, stat.kstkeip);
+
+	assertEquals("signal", 0, stat.signal);
+	assertEquals("blocked", 0, stat.blocked);
+	assertEquals("sigignore", 0, stat.sigignore);
+	assertEquals("sigcatch", 0, stat.sigcatch);
+	assertEquals("wchan", 0, stat.wchan);
+	assertEquals("nswap", 0, stat.nswap);
+	assertEquals("cnswap", 0, stat.cnswap);
+	assertEquals("exitSignal", 17, stat.exitSignal);
+	assertEquals("processor", 1, stat.processor);
+    }
+
+    public void testSelf() {
+	Stat stat = new Stat();
+	assertNotNull("stat value", stat.scan(Pid.get()));
+    }
+}
diff --git a/frysk-sys/frysk/sys/proc/cni/Stat.cxx b/frysk-sys/frysk/sys/proc/cni/Stat.cxx
index 98ad08a..124fb02 100644
--- a/frysk-sys/frysk/sys/proc/cni/Stat.cxx
+++ b/frysk-sys/frysk/sys/proc/cni/Stat.cxx
@@ -50,70 +50,69 @@
 #include "frysk/sys/proc/cni/slurp.hxx"
 #include "frysk/sys/cni/Errno.hxx"
 #include "frysk/sys/proc/Stat.h"
+#include "frysk/rsl/Log.h"
+#include "frysk/rsl/cni/Log.hxx"
 #include "frysk/sys/ProcessIdentifier.h"
 #include "frysk/sys/ProcessIdentifierFactory.h"
 
-frysk::sys::proc::Stat*
-frysk::sys::proc::Stat::scan(jint procPid) {
-  char buf[BUFSIZ];
-  int bufLen = slurp (procPid, "stat", buf, sizeof buf);
-  if (bufLen < 0)
-    return NULL;
-    
-  const char* p = buf;
-
-  tid = frysk::sys::ProcessIdentifierFactory::create(scanJint(&p));
-
+static frysk::sys::proc::Stat*
+scan(const char*p, frysk::sys::proc::Stat* const stat, frysk::rsl::Log* fine) {
   // The "comm" needs special treatment, need to scan backwards for
   // ')' as the command itself could contain ')'.
-  char* commStart = ::strchr (buf, '(');
-  char* commEnd = ::strrchr (buf, ')');
+  char* commStart = ::strchr (p, '(');
+  char* commEnd = ::strrchr (p, ')');
   if (commStart == NULL || commEnd == NULL)
     throwRuntimeException ("botched comm field");
-  comm = JvNewStringLatin1 (commStart + 1, commEnd - commStart - 1);
+  stat->comm = JvNewStringLatin1 (commStart + 1, commEnd - commStart - 1);
+
+  stat->pid = frysk::sys::ProcessIdentifierFactory::create(scanJint(&p));
+  log(fine, stat, "pid", stat->pid);
 
   // Messy, its a character, need to first skip any white space.
   p = commEnd + 1;
   p += ::strspn (p, " ");
-  state = *p++;
+  stat->state = *p++;
+  logf(fine, stat, "state %c", (char) stat->state);
 
-  ppid = frysk::sys::ProcessIdentifierFactory::create(scanJint(&p));
-  pgrp = scanJint (&p);
-  session = scanJint (&p);
-  ttyNr = scanJint (&p);
-  tpgid = scanJint (&p);
-  flags = scanJlong (&p);
-  minflt = scanJlong (&p);
-  cminflt = scanJlong (&p);
-  majflt = scanJlong (&p);
-  cmajflt = scanJlong (&p);
-  utime = scanJlong (&p);
-  stime = scanJlong (&p);
-  cutime = scanJlong (&p);
-  cstime = scanJlong (&p);
-  priority = scanJlong (&p);
-  nice = scanJint (&p);
-  zero = scanJint(&p);
-  irealvalue = scanJlong (&p);
-  starttime = scanJlong (&p);
-  vsize = scanJlong (&p);
-  rss = scanJlong (&p);
-  rlim = scanJlong (&p);
-  startcode = scanJlong (&p);
-  endcode = scanJlong (&p);
-  startstack = scanJlong (&p);
-  kstkesp = scanJlong (&p);
-  kstkeip = scanJlong (&p);
-  signal = scanJlong (&p);
-  blocked = scanJlong (&p);
-  sigignore = scanJlong (&p);
-  sigcatch = scanJlong (&p);
-  wchan = scanJlong (&p);
-  nswap = scanJlong (&p);
-  cnswap = scanJlong (&p);
-  exitSignal = scanJint (&p);
-  processor = scanJint (&p);
-  return this;
+  stat->ppid = frysk::sys::ProcessIdentifierFactory::create(scanJint(&p));
+  log(fine, stat, "ppid", stat->ppid);
+
+  stat->pgrp = scanJint (&p);
+  stat->session = scanJint (&p);
+  stat->ttyNr = scanJint (&p);
+  stat->tpgid = scanJint (&p);
+  stat->flags = scanJlong (&p);
+  stat->minflt = scanJlong (&p);
+  stat->cminflt = scanJlong (&p);
+  stat->majflt = scanJlong (&p);
+  stat->cmajflt = scanJlong (&p);
+  stat->utime = scanJlong (&p);
+  stat->stime = scanJlong (&p);
+  stat->cutime = scanJlong (&p);
+  stat->cstime = scanJlong (&p);
+  stat->priority = scanJlong (&p);
+  stat->nice = scanJint (&p);
+  stat->numThreads = scanJint(&p);
+  stat->irealvalue = scanJlong (&p);
+  stat->starttime = scanJlong (&p);
+  stat->vsize = scanJlong (&p);
+  stat->rss = scanJlong (&p);
+  stat->rlim = scanJlong (&p);
+  stat->startcode = scanJlong (&p);
+  stat->endcode = scanJlong (&p);
+  stat->startstack = scanJlong (&p);
+  stat->kstkesp = scanJlong (&p);
+  stat->kstkeip = scanJlong (&p);
+  stat->signal = scanJlong (&p);
+  stat->blocked = scanJlong (&p);
+  stat->sigignore = scanJlong (&p);
+  stat->sigcatch = scanJlong (&p);
+  stat->wchan = scanJlong (&p);
+  stat->nswap = scanJlong (&p);
+  stat->cnswap = scanJlong (&p);
+  stat->exitSignal = scanJint (&p);
+  stat->processor = scanJint (&p);
+  return stat;
 }
 
 frysk::sys::proc::Stat*
@@ -122,59 +121,19 @@ frysk::sys::proc::Stat::scan(jint procPid, jint threadTid) {
   int bufLen = slurp_thread (procPid, threadTid, "stat", buf, sizeof buf);
   if (bufLen < 0)
     return NULL;
-    
-  const char* p = buf;
-
-  tid = frysk::sys::ProcessIdentifierFactory::create(scanJint(&p));
-
-  // The "comm" needs special treatment, need to scan backwards for
-  // ')' as the command itself could contain ')'.
-  char* commStart = ::strchr (buf, '(');
-  char* commEnd = ::strrchr (buf, ')');
-  if (commStart == NULL || commEnd == NULL)
-    throwRuntimeException ("botched comm field");
-  comm = JvNewStringLatin1 (commStart + 1, commEnd - commStart - 1);
+  return ::scan(buf, this, fine);
+}
 
-  // Messy, its a character, need to first skip any white space.
-  p = commEnd + 1;
-  p += ::strspn (p, " ");
-  state = *p++;
+frysk::sys::proc::Stat*
+frysk::sys::proc::Stat::scan(jint procPid) {
+  char buf[BUFSIZ];
+  int bufLen = slurp (procPid, "stat", buf, sizeof buf);
+  if (bufLen < 0)
+    return NULL;
+  return ::scan(buf, this, fine);
+}
 
-  ppid = frysk::sys::ProcessIdentifierFactory::create(scanJint(&p));
-  pgrp = scanJint (&p);
-  session = scanJint (&p);
-  ttyNr = scanJint (&p);
-  tpgid = scanJint (&p);
-  flags = scanJlong (&p);
-  minflt = scanJlong (&p);
-  cminflt = scanJlong (&p);
-  majflt = scanJlong (&p);
-  cmajflt = scanJlong (&p);
-  utime = scanJlong (&p);
-  stime = scanJlong (&p);
-  cutime = scanJlong (&p);
-  cstime = scanJlong (&p);
-  priority = scanJlong (&p);
-  nice = scanJint (&p);


hooks/post-receive
--
frysk system monitor/debugger


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-02-14 18:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-14 18:10 [SCM] master: Rename Stat.zero to Stat.numThreads; Update; Test cagney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).