public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Rename RegisterSet to BlockSpace and AddressSpace to ByteSpace. Date: Fri, 04 Jul 2008 20:37:00 -0000 [thread overview] Message-ID: <20080704203706.18240.qmail@sourceware.org> (raw) 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 <cagney@redhat.com> 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 <cagney@redhat.com> + + * 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 <pmuldoon@redhat.com> * 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
reply other threads:[~2008-07-04 20:37 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=20080704203706.18240.qmail@sourceware.org \ --to=cagney@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: linkBe 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).