/******************************************************************************* * Copyright (c) 2000, 2009, 2007 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * QNX Software Systems - Initial API and implementation * Ericsson Communication - Modified for new DSF Reference Implementation *******************************************************************************/ package org.eclipse.cdt.dsf.mi.service.command.commands; import org.eclipse.cdt.dsf.datamodel.IDMContext; import org.eclipse.cdt.dsf.mi.service.MIFormat; import org.eclipse.cdt.dsf.mi.service.command.output.MIDataWriteMemoryInfo; import org.eclipse.cdt.dsf.mi.service.command.output.MIOutput; /** * -data-write-memory [ -o COLUMN_OFFSET ] * ADDRESS WORD-FORMAT WORD-SIZE VALUE * * where: * * 'COLUMN_OFFSET' * The cell offset from the beginning of the memory grid row * * 'ADDRESS' * Row address of the cell to be written * * 'WORD-FORMAT' * The format to be used to print the memory words * * 'WORD-SIZE' * The size of each memory word in bytes * * 'VALUE' * The value to be written into the cell * * Writes VALUE into ADDRESS + (COLUMN_OFFSET * WORD_SIZE). * */ public class MIDataWriteMemory extends MICommand<MIDataWriteMemoryInfo> { public MIDataWriteMemory( IDMContext ctx, long offset, String address, int wordFormat, int wordSize, String value) { super(ctx, "-data-write-memory"); //$NON-NLS-1$ if (offset != 0) { setOptions(new String[] { "-o", Long.toString(offset)}); //$NON-NLS-1$ } String format = "x"; //$NON-NLS-1$ switch (wordFormat) { case MIFormat.UNSIGNED : format = "u"; //$NON-NLS-1$ break; case MIFormat.FLOAT : format = "f"; //$NON-NLS-1$ break; case MIFormat.ADDRESS : format = "a"; //$NON-NLS-1$ break; case MIFormat.INSTRUCTION : format = "i"; //$NON-NLS-1$ break; case MIFormat.CHAR : format = "c"; //$NON-NLS-1$ break; case MIFormat.STRING : format = "s"; //$NON-NLS-1$ break; case MIFormat.DECIMAL : case MIFormat.NATURAL : format = "d"; //$NON-NLS-1$ break; case MIFormat.BINARY : format = "t"; //$NON-NLS-1$ break; case MIFormat.OCTAL : format = "o"; //$NON-NLS-1$ break; case MIFormat.HEXADECIMAL : case MIFormat.RAW : default : format = "x"; //$NON-NLS-1$ break; } setParameters( new String[] { address, format, Integer.toString(wordSize), value}); } @Override public MIDataWriteMemoryInfo getResult(MIOutput out) { return new MIDataWriteMemoryInfo(out); } }