This is the mail archive of the frysk-cvs@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[SCM] master: Rename Stat.zero to Stat.numThreads; Update; Test.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]