diff --git a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/IRegisters.java b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/IRegisters.java index f96f134c295..98b21cc0e80 100644 --- a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/IRegisters.java +++ b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/IRegisters.java @@ -107,27 +107,6 @@ public interface IRegisters extends IFormattedValues { String getLongName(); } - /** - * Retrieves register group data for given context. - * @param dmc Context to retrieve data for. - * @param rm Request completion monitor. - */ - void getRegisterGroupData(IRegisterGroupDMContext dmc, DataRequestMonitor rm); - - /** - * Retrieves register data for given context. - * @param dmc Context to retrieve data for. - * @param rm Request completion monitor. - */ - void getRegisterData(IRegisterDMContext dmc , DataRequestMonitor rm); - - /** - * Retrieves bit field data for given context. - * @param dmc Context to retrieve data for. - * @param rm Request completion monitor. - */ - void getBitFieldData(IBitFieldDMContext dmc , DataRequestMonitor rm); - /** * Retrieves the list of register groups. * @param ctx Context for the returned data. @@ -151,6 +130,56 @@ public interface IRegisters extends IFormattedValues { */ void getBitFields(IDMContext ctx, DataRequestMonitor rm); + /** + * Retrieves a Register Group context. The given context could include a register + * group and an execution context or just an execution context. + * @param ctx Context for the returned data. + * @param name Name of group being requested + * @param rm Request completion monitor. + */ + void findRegisterGroup(IDMContext ctx, String name, DataRequestMonitor rm); + + /** + * Retrieves a Register context. The given context could include a register group and an execution + * context or just an execution context. + * @param ctx Context for the returned data. + * @param name Name of register being requested + * @param rm Request completion monitor. + */ + void findRegister(IDMContext ctx, String name, DataRequestMonitor rm); + + /** + * Retrieves bit field context. The given context could include a register and an execution + * context or just an execution context. + * @param ctx Context for the returned data. + * @param name Name of bit field being requested + * @param rm Request completion monitor. + */ + void findBitField(IDMContext ctx, String name, DataRequestMonitor rm); + + /** + * Retrieves register group data for given context. + * @param dmc Context to retrieve data for. + * @param rm Request completion monitor. + */ + void getRegisterGroupData(IRegisterGroupDMContext dmc, DataRequestMonitor rm); + + /** + * Retrieves register data for given context. + * @param dmc Context to retrieve data for. + * @param rm Request completion monitor. + */ + void getRegisterData(IRegisterDMContext dmc , DataRequestMonitor rm); + + /** + * Retrieves bit field data for given context. + * @param dmc Context to retrieve data for. + * @param rm Request completion monitor. + */ + void getBitFieldData(IBitFieldDMContext dmc , DataRequestMonitor rm); + + + /** * Writes a register value for a given register to the target * @param regCtx Context containing the register. diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRegisters.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRegisters.java index 568a477a0d6..002231d4410 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRegisters.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRegisters.java @@ -40,7 +40,6 @@ import org.eclipse.dd.mi.service.command.output.MIInfo; import org.eclipse.dd.mi.service.command.output.MIRegisterValue; import org.osgi.framework.BundleContext; - /** * *

@@ -175,7 +174,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters { fRegisterNameCache = new CommandCache(getSession(), getServicesTracker().getService(ICommandControl.class)); /* - * Signup so we see events. We use these events to decide how to manage + * Sign up so we see events. We use these events to decide how to manage * any local caches we are providing as well as the lower level register * cache we create to get/set registers on the target. */ @@ -203,9 +202,9 @@ public class MIRegisters extends AbstractDsfService implements IRegisters { public void getModelData(IDMContext dmc, DataRequestMonitor rm) { /* * This is the method which is called when actual results need to be returned. We - * can be called either with a service DMC for which we return oureslves or we can + * can be called either with a service DMC for which we return ourselves or we can * be called with the DMC's we have handed out. If the latter is the case then we - * datamine by talking to the Debug Engine. + * data mine by talking to the Debug Engine. */ if (dmc instanceof MIRegisterGroupDMC) { @@ -396,14 +395,16 @@ public class MIRegisters extends AbstractDsfService implements IRegisters { * need to be flushed. These handlers maintain the state of the caches. */ - @DsfServiceEventHandler public void eventDispatched(IRunControl.IResumedDMEvent e) { + @DsfServiceEventHandler + public void eventDispatched(IRunControl.IResumedDMEvent e) { fRegisterValueCache.setContextAvailable(e.getDMContext(), false); if (e.getReason() != StateChangeReason.STEP) { fRegisterValueCache.reset(); } } - @DsfServiceEventHandler public void eventDispatched( + @DsfServiceEventHandler + public void eventDispatched( IRunControl.ISuspendedDMEvent e) { fRegisterValueCache.setContextAvailable(e.getDMContext(), true); fRegisterValueCache.reset(); @@ -414,6 +415,10 @@ public class MIRegisters extends AbstractDsfService implements IRegisters { fRegisterValueCache.reset(); } + private void generateRegisterChangedEvent(IRegisterDMContext dmc ) { + getSession().dispatchEvent(new RegisterChangedDMEvent(dmc), getProperties()); + } + /* * These are the public interfaces for this service. * @@ -562,12 +567,20 @@ public class MIRegisters extends AbstractDsfService implements IRegisters { rm.done(); } + /* + * (non-Javadoc) + * @see org.eclipse.dd.dsf.debug.service.IFormattedValues#getAvailableFormats(org.eclipse.dd.dsf.debug.service.IFormattedValues.IFormattedDataDMContext, org.eclipse.dd.dsf.concurrent.DataRequestMonitor) + */ public void getAvailableFormats(IFormattedDataDMContext dmc, DataRequestMonitor rm) { rm.setData(new String[] { HEX_FORMAT, DECIMAL_FORMAT, OCTAL_FORMAT, BINARY_FORMAT, NATURAL_FORMAT }); rm.done(); } + /* + * (non-Javadoc) + * @see org.eclipse.dd.dsf.debug.service.IFormattedValues#getFormattedValueContext(org.eclipse.dd.dsf.debug.service.IFormattedValues.IFormattedDataDMContext, java.lang.String) + */ public FormattedValueDMContext getFormattedValueContext(IFormattedDataDMContext dmc, String formatId) { if ( dmc instanceof MIRegisterDMC ) { MIRegisterDMC regDmc = (MIRegisterDMC) dmc; @@ -575,9 +588,31 @@ public class MIRegisters extends AbstractDsfService implements IRegisters { } return null; } + + /* + * (non-Javadoc) + * @see org.eclipse.dd.dsf.debug.service.IRegisters#findRegisterGroup(org.eclipse.dd.dsf.datamodel.IDMContext, java.lang.String, org.eclipse.dd.dsf.concurrent.DataRequestMonitor) + */ + public void findRegisterGroup(IDMContext ctx, String name, DataRequestMonitor rm) { + rm.setStatus(new Status(IStatus.ERROR, MIPlugin.PLUGIN_ID, NOT_SUPPORTED, "Finding a Register Group context not supported", null)); //$NON-NLS-1$ + rm.done(); + } - private void generateRegisterChangedEvent(IRegisterDMContext dmc ) { - getSession().dispatchEvent(new RegisterChangedDMEvent(dmc), getProperties()); + /* + * (non-Javadoc) + * @see org.eclipse.dd.dsf.debug.service.IRegisters#findRegister(org.eclipse.dd.dsf.datamodel.IDMContext, java.lang.String, org.eclipse.dd.dsf.concurrent.DataRequestMonitor) + */ + public void findRegister(IDMContext ctx, String name, DataRequestMonitor rm) { + rm.setStatus(new Status(IStatus.ERROR, MIPlugin.PLUGIN_ID, NOT_SUPPORTED, "Finding a Register context not supported", null)); //$NON-NLS-1$ + rm.done(); } + /* + * (non-Javadoc) + * @see org.eclipse.dd.dsf.debug.service.IRegisters#findBitField(org.eclipse.dd.dsf.datamodel.IDMContext, java.lang.String, org.eclipse.dd.dsf.concurrent.DataRequestMonitor) + */ + public void findBitField(IDMContext ctx, String name, DataRequestMonitor rm) { + rm.setStatus(new Status(IStatus.ERROR, MIPlugin.PLUGIN_ID, NOT_SUPPORTED, "Finding a Register Group context not supported", null)); //$NON-NLS-1$ + rm.done(); + } }