From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18282 invoked by alias); 4 Jul 2008 20:37:07 -0000 Received: (qmail 18255 invoked by uid 367); 4 Jul 2008 20:37:07 -0000 Date: Fri, 04 Jul 2008 20:37:00 -0000 Message-ID: <20080704203706.18240.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Rename RegisterSet to BlockSpace and AddressSpace to ByteSpace. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 6a0ea520d3eaebb371820f312c3bb40666c60265 X-Git-Newrev: 44038d6b0cfa52d6ee37adc061cb4142997d99b1 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2008-q3/txt/msg00002.txt.bz2 The branch, master has been updated via 44038d6b0cfa52d6ee37adc061cb4142997d99b1 (commit) from 6a0ea520d3eaebb371820f312c3bb40666c60265 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 44038d6b0cfa52d6ee37adc061cb4142997d99b1 Author: Andrew Cagney Date: Fri Jul 4 16:35:00 2008 -0400 Rename RegisterSet to BlockSpace and AddressSpace to ByteSpace. It turns out that there are more block transferable spaces then just the register sets. ----------------------------------------------------------------------- Summary of changes: ...etByteBuffer.java => BlockSpaceByteBuffer.java} | 27 +-- ...aceByteBuffer.java => ByteSpaceByteBuffer.java} | 84 ++++---- frysk-core/frysk/proc/live/ChangeLog | 9 + frysk-core/frysk/proc/live/LinuxPtraceTask.java | 7 +- .../frysk/proc/live/LogicalMemoryBuffer.java | 172 +++++++-------- .../proc/live/PtraceRegisterBanksFactory.java | 20 +- frysk-core/frysk/proc/live/TestByteBuffer.java | 242 +++++++++----------- .../ptrace/{RegisterSet.java => BlockSpace.java} | 23 +- .../ptrace/{AddressSpace.java => ByteSpace.java} | 22 +- frysk-sys/frysk/sys/ptrace/ChangeLog | 11 + frysk-sys/frysk/sys/ptrace/TestAddressSpace.java | 60 +++--- frysk-sys/frysk/sys/ptrace/TestRegisterSet.java | 8 +- .../ptrace/cni/{RegisterSet.cxx => BlockSpace.cxx} | 34 ++-- .../ptrace/cni/{AddressSpace.cxx => ByteSpace.cxx} | 48 ++-- .../ptrace/jni/{RegisterSet.cxx => BlockSpace.cxx} | 26 +- .../ptrace/jni/{AddressSpace.cxx => ByteSpace.cxx} | 48 ++-- frysk-sys/frysk/testbed/ChangeLog | 4 + frysk-sys/frysk/testbed/LocalMemory.java | 4 +- 18 files changed, 419 insertions(+), 430 deletions(-) rename frysk-core/frysk/proc/live/{RegisterSetByteBuffer.java => BlockSpaceByteBuffer.java} (86%) rename frysk-core/frysk/proc/live/{AddressSpaceByteBuffer.java => ByteSpaceByteBuffer.java} (80%) rename frysk-sys/frysk/sys/ptrace/{RegisterSet.java => BlockSpace.java} (82%) rename frysk-sys/frysk/sys/ptrace/{AddressSpace.java => ByteSpace.java} (89%) rename frysk-sys/frysk/sys/ptrace/cni/{RegisterSet.cxx => BlockSpace.cxx} (77%) rename frysk-sys/frysk/sys/ptrace/cni/{AddressSpace.cxx => ByteSpace.cxx} (83%) rename frysk-sys/frysk/sys/ptrace/jni/{RegisterSet.cxx => BlockSpace.cxx} (84%) rename frysk-sys/frysk/sys/ptrace/jni/{AddressSpace.cxx => ByteSpace.cxx} (82%) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/live/RegisterSetByteBuffer.java b/frysk-core/frysk/proc/live/BlockSpaceByteBuffer.java similarity index 86% rename from frysk-core/frysk/proc/live/RegisterSetByteBuffer.java rename to frysk-core/frysk/proc/live/BlockSpaceByteBuffer.java index 6b2c1ff..84b2c8a 100644 --- a/frysk-core/frysk/proc/live/RegisterSetByteBuffer.java +++ b/frysk-core/frysk/proc/live/BlockSpaceByteBuffer.java @@ -39,7 +39,7 @@ package frysk.proc.live; -import frysk.sys.ptrace.RegisterSet; +import frysk.sys.ptrace.BlockSpace; import frysk.event.Request; import frysk.proc.Manager; import inua.eio.ByteBuffer; @@ -50,23 +50,23 @@ import frysk.sys.ProcessIdentifier; * be read or written all at once e.g., the registers or floating * point registers. */ -public class RegisterSetByteBuffer +public class BlockSpaceByteBuffer extends ByteBuffer { private final ProcessIdentifier pid; - private final RegisterSet registerSet; + private final BlockSpace registerSet; private final byte[] bytes; - private RegisterSetByteBuffer(ProcessIdentifier pid, - RegisterSet registerSet, - long lowerExtreem, long upperExtreem) { + private BlockSpaceByteBuffer(ProcessIdentifier pid, + BlockSpace registerSet, + long lowerExtreem, long upperExtreem) { super(lowerExtreem, upperExtreem); this.pid = pid; this.registerSet = registerSet; bytes = new byte[registerSet.length()]; } - public RegisterSetByteBuffer(ProcessIdentifier pid, - RegisterSet registerSet) { + public BlockSpaceByteBuffer(ProcessIdentifier pid, + BlockSpace registerSet) { this(pid, registerSet, 0, registerSet.length()); } @@ -121,11 +121,10 @@ public class RegisterSetByteBuffer return len; } - protected ByteBuffer subBuffer (ByteBuffer parent, long lowerExtreem, - long upperExtreem) - { - RegisterSetByteBuffer up = (RegisterSetByteBuffer)parent; - return new RegisterSetByteBuffer (up.pid, up.registerSet, - lowerExtreem, upperExtreem); + protected ByteBuffer subBuffer(ByteBuffer parent, long lowerExtreem, + long upperExtreem) { + BlockSpaceByteBuffer up = (BlockSpaceByteBuffer)parent; + return new BlockSpaceByteBuffer(up.pid, up.registerSet, + lowerExtreem, upperExtreem); } } diff --git a/frysk-core/frysk/proc/live/AddressSpaceByteBuffer.java b/frysk-core/frysk/proc/live/ByteSpaceByteBuffer.java similarity index 80% rename from frysk-core/frysk/proc/live/AddressSpaceByteBuffer.java rename to frysk-core/frysk/proc/live/ByteSpaceByteBuffer.java index adc0723..7cd405e 100644 --- a/frysk-core/frysk/proc/live/AddressSpaceByteBuffer.java +++ b/frysk-core/frysk/proc/live/ByteSpaceByteBuffer.java @@ -42,34 +42,35 @@ package frysk.proc.live; import inua.eio.ByteBuffer; import frysk.sys.Errno; import frysk.sys.ProcessIdentifier; -import frysk.sys.ptrace.AddressSpace; +import frysk.sys.ptrace.ByteSpace; import frysk.sys.proc.Mem; import frysk.event.Request; import frysk.proc.Manager; -public class AddressSpaceByteBuffer extends ByteBuffer { - protected final AddressSpace addressSpace; +public class ByteSpaceByteBuffer extends ByteBuffer { + protected final ByteSpace addressSpace; protected final ProcessIdentifier pid; // Direct files access if possible, or null otherwise. private Mem mem; - protected AddressSpaceByteBuffer (ProcessIdentifier pid, - AddressSpace addressSpace, - long lowerExtreem, long upperExtreem) { + protected ByteSpaceByteBuffer (ProcessIdentifier pid, + ByteSpace addressSpace, + long lowerExtreem, long upperExtreem) { super (lowerExtreem, upperExtreem); this.pid = pid; this.addressSpace = addressSpace; peekRequest = new PeekRequest(); pokeRequest = new PokeRequest(); - if (addressSpace == AddressSpace.TEXT - || addressSpace == AddressSpace.DATA) + if (addressSpace == ByteSpace.TEXT + || addressSpace == ByteSpace.DATA) { // Try to use /proc; but if any error occures clear it and // revert back to ptrace. mem = new Mem(pid); + } } - public AddressSpaceByteBuffer(ProcessIdentifier pid, - AddressSpace addressSpace) { + public ByteSpaceByteBuffer(ProcessIdentifier pid, + ByteSpace addressSpace) { this(pid, addressSpace, 0, addressSpace.length()); } @@ -79,22 +80,21 @@ public class AddressSpaceByteBuffer extends ByteBuffer { { private long index; private int value; - PeekRequest() - { + PeekRequest() { super(Manager.eventLoop); } - public void execute () - { + public void execute() { value = addressSpace.peek(pid, index); } - public int request (long index) - { + public int request(long index) { if (isEventLoopThread()) return addressSpace.peek(pid, index); - else synchronized (this) { - this.index = index; - request(); - return value; + else { + synchronized (this) { + this.index = index; + request(); + return value; + } } } } @@ -108,22 +108,21 @@ public class AddressSpaceByteBuffer extends ByteBuffer { { private long index; private int value; - PokeRequest() - { + PokeRequest() { super(Manager.eventLoop); } - public void execute () - { + public void execute() { addressSpace.poke(pid, index, value); } - public void request (long index, int value) - { + public void request(long index, int value) { if (isEventLoopThread()) addressSpace.poke(pid, index, value); - else synchronized (this) { - this.index = index; - this.value = value; - request(); + else { + synchronized (this) { + this.index = index; + this.value = value; + request(); + } } } } @@ -167,13 +166,15 @@ public class AddressSpaceByteBuffer extends ByteBuffer { boolean write) { if (isEventLoopThread()) transfer(index, bytes, offset, length, write); - else synchronized (this) { - this.index = index; - this.bytes = bytes; - this.offset = offset; - this.length = length; - this.write = write; - super.request(); + else { + synchronized (this) { + this.index = index; + this.bytes = bytes; + this.offset = offset; + this.length = length; + this.write = write; + super.request(); + } } } } @@ -189,10 +190,9 @@ public class AddressSpaceByteBuffer extends ByteBuffer { } protected ByteBuffer subBuffer (ByteBuffer parent, long lowerExtreem, - long upperExtreem) - { - AddressSpaceByteBuffer up = (AddressSpaceByteBuffer)parent; - return new AddressSpaceByteBuffer (up.pid, up.addressSpace, - lowerExtreem, upperExtreem); + long upperExtreem) { + ByteSpaceByteBuffer up = (ByteSpaceByteBuffer)parent; + return new ByteSpaceByteBuffer(up.pid, up.addressSpace, + lowerExtreem, upperExtreem); } } diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 0d40328..49838f5 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,12 @@ +2008-07-04 Andrew Cagney + + * ByteSpaceByteBuffer.java: Rename AddressSpaceByteBuffer. + * BlockSpaceByteBuffer.java: Rename RegisterSetByteBuffer.. + * LogicalMemoryBuffer.java: Update. + * LinuxPtraceTask.java: Update. + * PtraceRegisterBanksFactory.java: Update. + * TestByteBuffer.java: Update. + 2008-06-16 Phil Muldoon * LinuxPtraceTaskState.java (Running.checkWatchpoint): Rewrite to use diff --git a/frysk-core/frysk/proc/live/LinuxPtraceTask.java b/frysk-core/frysk/proc/live/LinuxPtraceTask.java index 0ecadb3..8dc5c78 100644 --- a/frysk-core/frysk/proc/live/LinuxPtraceTask.java +++ b/frysk-core/frysk/proc/live/LinuxPtraceTask.java @@ -60,7 +60,7 @@ import inua.eio.ByteOrder; import frysk.sys.Errno; import frysk.sys.ProcessIdentifier; import frysk.sys.ptrace.Ptrace; -import frysk.sys.ptrace.AddressSpace; +import frysk.sys.ptrace.ByteSpace; import frysk.sys.Signal; import frysk.isa.syscalls.Syscall; import frysk.isa.ISA; @@ -140,8 +140,7 @@ public class LinuxPtraceTask extends LiveTask { ByteBuffer getRawMemory() { fine.log(this, "Begin fillMemory"); ByteOrder byteOrder = getISA().order(); - ByteBuffer memory = new AddressSpaceByteBuffer(tid, - AddressSpace.DATA); + ByteBuffer memory = new ByteSpaceByteBuffer(tid, ByteSpace.DATA); memory.order(byteOrder); fine.log(this, "End fillMemory"); return memory; @@ -155,7 +154,7 @@ public class LinuxPtraceTask extends LiveTask { fine.log(this, "exiting get memory"); ByteOrder byteOrder = getISA().order(); BreakpointAddresses breakpoints = ((LinuxPtraceProc)getProc()).breakpoints; - memory = new LogicalMemoryBuffer(tid, AddressSpace.DATA, + memory = new LogicalMemoryBuffer(tid, ByteSpace.DATA, breakpoints); memory.order(byteOrder); } diff --git a/frysk-core/frysk/proc/live/LogicalMemoryBuffer.java b/frysk-core/frysk/proc/live/LogicalMemoryBuffer.java index 5d1330b..3227a5f 100644 --- a/frysk-core/frysk/proc/live/LogicalMemoryBuffer.java +++ b/frysk-core/frysk/proc/live/LogicalMemoryBuffer.java @@ -42,7 +42,7 @@ package frysk.proc.live; import frysk.sys.ProcessIdentifier; import java.util.Iterator; import inua.eio.ByteBuffer; -import frysk.sys.ptrace.AddressSpace; +import frysk.sys.ptrace.ByteSpace; /** * MemorySpaceByteBuffer that filters out anything the frysk core @@ -51,16 +51,15 @@ import frysk.sys.ptrace.AddressSpace; * replace the bytes with the logical bytes as the user would normally * see them from the process. */ -class LogicalMemoryBuffer extends AddressSpaceByteBuffer -{ - // The breakpoints associated with the process address space. - private final BreakpointAddresses breakpoints; +class LogicalMemoryBuffer extends ByteSpaceByteBuffer { + // The breakpoints associated with the process address space. + private final BreakpointAddresses breakpoints; /** * Private constructor used by subBuffer() */ private LogicalMemoryBuffer(ProcessIdentifier tid, - AddressSpace addressSpace, + ByteSpace addressSpace, BreakpointAddresses breakpoints, long lower, long upper) { super(tid, addressSpace, lower, upper); @@ -72,99 +71,90 @@ class LogicalMemoryBuffer extends AddressSpaceByteBuffer * memory space for a task when requested. */ LogicalMemoryBuffer(ProcessIdentifier tid, - AddressSpace addressSpace, + ByteSpace addressSpace, BreakpointAddresses breakpoints) { super(tid, addressSpace); this.breakpoints = breakpoints; } - protected int peek(long caret) - { - Breakpoint breakpoint = breakpoints.getBreakpoint(caret); - if (breakpoint != null) - { - // This really shouldn't happen, it means the breakpoint - // is already uninstalled. - Instruction instruction = breakpoint.getInstruction(); - if (instruction != null) - { - byte[] ibs = instruction.getBytes(); - return ibs[0] & 0xff; - } - } - return super.peek(caret); - } - - protected int peek(long index, byte[] bytes, int offset, int length) - { - synchronized (breakpoints) - { - Iterator it; - it = breakpoints.getBreakpoints(index, index + length); - int r = 0; - while (it.hasNext()) - { - Breakpoint breakpoint = (Breakpoint) it.next(); - // address - index falls inside the byte[] so will be at most - // a positive int apart. - int l = (int) (breakpoint.getAddress() - index) - r; - // Do we need to be worried about "short peeks"? - r += super.peek(index + r, bytes, offset + r, l); - - byte b; - Instruction instruction = breakpoint.getInstruction(); + protected int peek(long caret) + { + Breakpoint breakpoint = breakpoints.getBreakpoint(caret); + if (breakpoint != null) { // This really shouldn't happen, it means the breakpoint // is already uninstalled. - if (instruction != null) - b = instruction.getBytes()[0]; - else - b = (byte) super.peek(index + r); - bytes[offset + r] = b; - r++; - } - return super.peek(index + r, bytes, offset + r, length - r) + r; - } - } - - /** - * Pokes the value at the given index. Unless a breakpoint is set at - * that location (FIXME: this limitation should be lifted). - */ - protected void poke (long index, int value) - { - Breakpoint breakpoint = breakpoints.getBreakpoint(index); - if (breakpoint != null) - throw new UnsupportedOperationException("breakpoint set at: " + index); - - super.poke(index, value); - } + Instruction instruction = breakpoint.getInstruction(); + if (instruction != null) { + byte[] ibs = instruction.getBytes(); + return ibs[0] & 0xff; + } + } + return super.peek(caret); + } - /** - * Pokes the given bytes from offset at the index plus the given - * lenght. Unless a breakpoint is set in that range (FIXME: this - * limitation should be lifted). - */ - protected int poke(long index, byte[] bytes, int offset, int length) - { - synchronized (breakpoints) - { - Iterator it; - it = breakpoints.getBreakpoints(index, index + length); - if (it.hasNext()) - throw new UnsupportedOperationException("breakpoint set between " - + index + " and " - + index + length); - } + protected int peek(long index, byte[] bytes, int offset, int length) { + synchronized (breakpoints) { + Iterator it; + it = breakpoints.getBreakpoints(index, index + length); + int r = 0; + while (it.hasNext()) { + Breakpoint breakpoint = (Breakpoint) it.next(); + // address - index falls inside the byte[] so will be at most + // a positive int apart. + int l = (int) (breakpoint.getAddress() - index) - r; + // Do we need to be worried about "short peeks"? + r += super.peek(index + r, bytes, offset + r, l); + + byte b; + Instruction instruction = breakpoint.getInstruction(); + // This really shouldn't happen, it means the breakpoint + // is already uninstalled. + if (instruction != null) + b = instruction.getBytes()[0]; + else + b = (byte) super.peek(index + r); + bytes[offset + r] = b; + r++; + } + return super.peek(index + r, bytes, offset + r, length - r) + r; + } + } + + /** + * Pokes the value at the given index. Unless a breakpoint is set + * at that location (FIXME: this limitation should be lifted). + */ + protected void poke(long index, int value) { + Breakpoint breakpoint = breakpoints.getBreakpoint(index); + if (breakpoint != null) + throw new UnsupportedOperationException("breakpoint set at: " + index); - return super.poke(index, bytes, offset, length); - } + super.poke(index, value); + } + + /** + * Pokes the given bytes from offset at the index plus the given + * lenght. Unless a breakpoint is set in that range (FIXME: this + * limitation should be lifted). + */ + protected int poke(long index, byte[] bytes, int offset, int length) { + synchronized (breakpoints) { + Iterator it; + it = breakpoints.getBreakpoints(index, index + length); + if (it.hasNext()) + throw new UnsupportedOperationException("breakpoint set between " + + index + " and " + + index + length); + } + + return super.poke(index, bytes, offset, length); + } - protected ByteBuffer subBuffer(ByteBuffer parent, - long lower, long upper) - { - LogicalMemoryBuffer sub = (LogicalMemoryBuffer) parent; - return new LogicalMemoryBuffer (sub.pid, sub.addressSpace, - sub.breakpoints, - lower, upper); - } + protected ByteBuffer subBuffer(ByteBuffer parent, + long lower, long upper) { + LogicalMemoryBuffer sub = (LogicalMemoryBuffer) parent; + return new LogicalMemoryBuffer (sub.pid, sub.addressSpace, + sub.breakpoints, + lower, upper); + } } diff --git a/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java b/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java index daa86d9..dea7c53 100644 --- a/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java +++ b/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java @@ -44,8 +44,8 @@ import inua.eio.ByteBuffer; import inua.eio.ByteOrder; import frysk.isa.ISA; import frysk.sys.ProcessIdentifier; -import frysk.sys.ptrace.RegisterSet; -import frysk.sys.ptrace.AddressSpace; +import frysk.sys.ptrace.BlockSpace; +import frysk.sys.ptrace.ByteSpace; import frysk.isa.banks.RegisterBanks; import frysk.isa.banks.X86BankRegisters; import frysk.isa.banks.PPCBankRegisters; @@ -60,9 +60,9 @@ class PtraceRegisterBanksFactory { private static ByteBuffer[] x8664Banks(ProcessIdentifier pid) { ByteBuffer[] bankBuffers = new ByteBuffer[] { - new RegisterSetByteBuffer(pid, RegisterSet.REGS), - new RegisterSetByteBuffer(pid, RegisterSet.FPREGS), - new AddressSpaceByteBuffer(pid, AddressSpace.USR) hooks/post-receive -- frysk system monitor/debugger