public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: pmuldoon@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Implement readStatusRegister, use readControlRegister and reduce scope of both functions.
Date: Thu, 03 Apr 2008 21:08:00 -0000	[thread overview]
Message-ID: <20080403210821.3351.qmail@sourceware.org> (raw)

The branch, master has been updated
       via  ae7d5f2086a6fcd8f18e74223c6075476db0e0bb (commit)
      from  c7c9068679a57d65feaa31102116f95bd5d56fbe (commit)

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

- Log -----------------------------------------------------------------
commit ae7d5f2086a6fcd8f18e74223c6075476db0e0bb
Author: Phil Muldoon <pmuldoon@redhat.com>
Date:   Thu Apr 3 22:07:27 2008 +0100

    Implement readStatusRegister, use readControlRegister and reduce scope of both functions.
    
    2008-04-03  Phil Muldoon  <pmuldoon@redhat.com>
    
            * WatchpointFunctions.java (readStatusRegister): Declare.
            (readControlRegister): Reduce scope to protected.
            * IA32WatchpointFunctions.java (readStatusRegister): Implement.
            (hasWatchpointTriggered): Use readStatusRegister.
            (deleteWatchpoint): Use readControlRegister.
            (readWatchpoint): Ditto.
            (setWatchpoint): Ditto.
            * X8664WatchpointFunctions.java (readStatusRegister): Ditto.
            (hasWatchpointTriggered):  use readStatusRegister.
            (deleteWatchpoint): Use readControlRegister.
            (readWatchpoint): Ditto.
            (setWatchpoint): Ditto.

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

Summary of changes:
 frysk-core/frysk/isa/watchpoints/ChangeLog         |   16 +++++++++++++
 .../isa/watchpoints/IA32WatchpointFunctions.java   |   24 ++++++++++++++-----
 .../frysk/isa/watchpoints/WatchpointFunctions.java |   14 ++++++++---
 .../isa/watchpoints/X8664WatchpointFunctions.java  |   24 +++++++++++++------
 4 files changed, 59 insertions(+), 19 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/isa/watchpoints/ChangeLog b/frysk-core/frysk/isa/watchpoints/ChangeLog
index 93952e1..33613b2 100644
--- a/frysk-core/frysk/isa/watchpoints/ChangeLog
+++ b/frysk-core/frysk/isa/watchpoints/ChangeLog
@@ -1,5 +1,21 @@
 2008-04-03  Phil Muldoon  <pmuldoon@redhat.com>
 
+	* WatchpointFunctions.java (readStatusRegister): Declare.
+	(readControlRegister): Reduce scope to protected.
+	* IA32WatchpointFunctions.java (readStatusRegister): Implement.
+	(hasWatchpointTriggered): Use readStatusRegister.
+	(deleteWatchpoint): Use readControlRegister.
+	(readWatchpoint): Ditto.
+	(setWatchpoint): Ditto. 
+	* X8664WatchpointFunctions.java (readStatusRegister): Ditto.
+	(hasWatchpointTriggered):  use readStatusRegister.
+	(deleteWatchpoint): Use readControlRegister.
+	(readWatchpoint): Ditto.
+	(setWatchpoint): Ditto.
+	
+
+2008-04-02  Phil Muldoon  <pmuldoon@redhat.com>
+
 	* TestWatchpoint.java (Symbol.Symbol): New temporary class to resolve
 	Elf symbols. 
 	(getGlobalSymbolAddress): New function.
diff --git a/frysk-core/frysk/isa/watchpoints/IA32WatchpointFunctions.java b/frysk-core/frysk/isa/watchpoints/IA32WatchpointFunctions.java
index e2883c7..e7cc0a8 100644
--- a/frysk-core/frysk/isa/watchpoints/IA32WatchpointFunctions.java
+++ b/frysk-core/frysk/isa/watchpoints/IA32WatchpointFunctions.java
@@ -61,7 +61,6 @@ class IA32WatchpointFunctions extends WatchpointFunctions {
      * 1,2 or 4 bytes.
      * @param writeOnly - When true, only trigger when address is
      * written. False, trigger when address is read or written to.
-     * @param localOnly - set local extant only.
      */
     public void setWatchpoint(Task task, int index, 
 	       long addr, int range,
@@ -76,7 +75,7 @@ class IA32WatchpointFunctions extends WatchpointFunctions {
 	    task.setRegister(IA32Registers.DEBUG_REGS_GROUP.getRegisters()[index],
 			     addr);
 	    // Get the Debug Control Register
-	    long debugControl = task.getRegister(IA32Registers.DEBUG_CONTROL);
+	    long debugControl = readControlRegister(task);
 	    
 	    // First eight bits of register define the global/local
 	    // status of each of the four DR registers. Two bits per
@@ -155,8 +154,8 @@ class IA32WatchpointFunctions extends WatchpointFunctions {
 	long address = task.getRegister(
 		IA32Registers.DEBUG_REGS_GROUP.getRegisters()[index]);
 	
-	// Get debug status register for all other values
-	long debugStatus = task.getRegister(IA32Registers.DEBUG_CONTROL);
+	// Get the Debug Control Register
+	long debugStatus = readControlRegister(task);
 
 	boolean writeOnly = false;
 	
@@ -200,7 +199,7 @@ class IA32WatchpointFunctions extends WatchpointFunctions {
 	    task.setRegister(IA32Registers.DEBUG_REGS_GROUP.getRegisters()[index],
 			     0x0L);
 	    // Get the Debug Control Register
-	    long debugControl = task.getRegister(IA32Registers.DEBUG_CONTROL);
+	    long debugControl = readControlRegister(task);
 	    
 	    // First eight bits of register define the global/local
 	    // status of each of the four DR registers. Two bits per
@@ -232,7 +231,7 @@ class IA32WatchpointFunctions extends WatchpointFunctions {
      * register from.
      */
     public boolean hasWatchpointTriggered(Task task, int index) {
-	long debugStatus = task.getRegister(IA32Registers.DEBUG_STATUS);	
+	long debugStatus = readStatusRegister(task);	
 	return (debugStatus & (1L << index)) != 0;
     }
 
@@ -243,10 +242,21 @@ class IA32WatchpointFunctions extends WatchpointFunctions {
      * @param task - task to read the debug control
      * register from.
      */
-    public long readControlRegister(Task task) {
+    protected long readControlRegister(Task task) {
 	return task.getRegister(IA32Registers.DEBUG_CONTROL);
     }
     
+    /**
+     * Reads the Debug status register.
+     *
+     * @param task - task to read the debug status
+     * register from.
+     */
+    protected long readStatusRegister(Task task) {
+	return task.getRegister(IA32Registers.DEBUG_STATUS);
+    }
+
+    
     private boolean testBit(long register, int bitToTest) {
 	return (register & (1L << bitToTest)) != 0;
     }
diff --git a/frysk-core/frysk/isa/watchpoints/WatchpointFunctions.java b/frysk-core/frysk/isa/watchpoints/WatchpointFunctions.java
index a5a30a9..0eb247a 100644
--- a/frysk-core/frysk/isa/watchpoints/WatchpointFunctions.java
+++ b/frysk-core/frysk/isa/watchpoints/WatchpointFunctions.java
@@ -42,7 +42,6 @@ package frysk.isa.watchpoints;
 
 import java.util.ArrayList;
 import java.util.List;
-
 import frysk.proc.Task;
 
 public abstract class WatchpointFunctions  {
@@ -62,7 +61,6 @@ public abstract class WatchpointFunctions  {
     * 1,2 or 4 bytes. 8 on 64 bit systems. Architecture dependent.
     * @param writeOnly - When true, only trigger when address is
     * written. False, trigger when address is read or written to.
-    * @param localOnly - set local extant only.
     */
     public abstract void setWatchpoint(Task task, int index, 
 				       long addr, int range,
@@ -105,15 +103,23 @@ public abstract class WatchpointFunctions  {
 	}
 	return listOfWP;   
     }
+
     /**
      * Reads the Debug control register.
      *
      * @param task - task to read the debug control
      * register from.
      */
-    public abstract long readControlRegister(Task task);
+    protected abstract long readControlRegister(Task task);
+
+    /**
+     * Reads the Debug status register.
+     *
+     * @param task - task to read the debug status
+     * register from.
+     */
+    protected abstract long readStatusRegister(Task task);
 
-    
     /**
      * Reads the Debug Status Register and checks if 
      * the breakpoint specified has fired.
diff --git a/frysk-core/frysk/isa/watchpoints/X8664WatchpointFunctions.java b/frysk-core/frysk/isa/watchpoints/X8664WatchpointFunctions.java
index 198fa42..5b9aa03 100644
--- a/frysk-core/frysk/isa/watchpoints/X8664WatchpointFunctions.java
+++ b/frysk-core/frysk/isa/watchpoints/X8664WatchpointFunctions.java
@@ -61,7 +61,6 @@ class X8664WatchpointFunctions extends WatchpointFunctions {
      * 1,24, or 8 bytes.
      * @param writeOnly - When true, only trigger when address is
      * written. False, trigger when address is read or written to.
-     * @param localOnly - set local extant only.
      */
     public void setWatchpoint(Task task, int index, 
 	       long addr, int range,
@@ -75,7 +74,7 @@ class X8664WatchpointFunctions extends WatchpointFunctions {
 	    task.setRegister(X8664Registers.DEBUG_REGS_GROUP.getRegisters()[index],
 			     addr);
 	    // Get the Debug Control Register
-	    long debugControl = task.getRegister(X8664Registers.DEBUG_CONTROL);
+	    long debugControl = readControlRegister(task);
 	    
 	    // First eight bits of register define the global/local
 	    // status of each of the four DR registers. Two bits per
@@ -152,8 +151,8 @@ class X8664WatchpointFunctions extends WatchpointFunctions {
 		X8664Registers.DEBUG_REGS_GROUP.getRegisters()[index]);
 	
 	// Get debug status register for all other values
-	long debugStatus = task.getRegister(X8664Registers.DEBUG_CONTROL);
-
+	long debugStatus = readControlRegister(task);
+	
 	boolean writeOnly = false;
 	
 	// To find write/read, or read only the bit setting is 0 + no of
@@ -197,7 +196,7 @@ class X8664WatchpointFunctions extends WatchpointFunctions {
 	    task.setRegister(X8664Registers.DEBUG_REGS_GROUP.getRegisters()[index],
 			     0x0L);
 	    // Get the Debug Control Register
-	    long debugControl = task.getRegister(X8664Registers.DEBUG_CONTROL);
+	    long debugControl = readControlRegister(task);
 	    
 	    // First eight bits of register define the global/local
 	    // status of each of the four DR registers. Two bits per
@@ -222,18 +221,27 @@ class X8664WatchpointFunctions extends WatchpointFunctions {
     }
 
     
-
     /**
      * Reads the Debug control register.
      *
      * @param task - task to read the debug control
      * register from.
      */
-    public long readControlRegister(Task task) {
+    protected long readControlRegister(Task task) {
 	return task.getRegister(X8664Registers.DEBUG_CONTROL);
     }
 
     /**
+     * Reads the Debug cstatus register.
+     *
+     * @param task - task to read the debug status
+     * register from.
+     */
+    protected long readStatusRegister(Task task) {
+	return task.getRegister(X8664Registers.DEBUG_STATUS);
+    }
+
+    /**
      * Reads the Debug Status Register and checks if 
      * the breakpoint specified has fired.
      *
@@ -241,7 +249,7 @@ class X8664WatchpointFunctions extends WatchpointFunctions {
      * register from.
      */
     public boolean hasWatchpointTriggered(Task task, int index) {
-	long debugStatus = task.getRegister(X8664Registers.DEBUG_STATUS);
+	long debugStatus = readStatusRegister(task);	
 	return (debugStatus & (1L << index)) != 0;
     }
 


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


                 reply	other threads:[~2008-04-03 21:08 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080403210821.3351.qmail@sourceware.org \
    --to=pmuldoon@sourceware.org \
    --cc=frysk-cvs@sourceware.org \
    --cc=frysk@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).