blob: ae9be2738ff381d5e828b26ec7fb0d412d68d533 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005 The Regents of the University of California.
* This material was produced under U.S. Government contract W-7405-ENG-36
* for Los Alamos National Laboratory, which is operated by the University
* of California for the U.S. Department of Energy. The U.S. Government has
* rights to use, reproduce, and distribute this software. NEITHER THE
* GOVERNMENT NOR THE UNIVERSITY MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR
* ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is modified
* to produce derivative works, such modified software should be clearly marked,
* so as not to confuse it with the version available from LANL.
*
* Additionally, 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
*
* LA-CC 04-115
*******************************************************************************/
package org.eclipse.ptp.debug.core.pdi.manager;
import java.math.BigInteger;
import java.util.List;
import org.eclipse.ptp.core.util.BitList;
import org.eclipse.ptp.debug.core.pdi.PDIException;
import org.eclipse.ptp.debug.core.pdi.event.IPDIEvent;
import org.eclipse.ptp.debug.core.pdi.model.IPDIMemoryBlock;
/**
* Represent memeory manager to manage memory
* @author clement
*
*/
public interface IPDIMemoryManager extends IPDIManager {
/**
* Returns a memory block specified by given identifier.
* @param qTasks target process
* @param address
* @param units - number of bytes
* @param wordSize - this parameter has been deprecated and will always be passed as the value 1. If the memory has an addressable size (number of bytes per address) greather than 1, the PDI client should take care not to
* @return a memory block with the specified identifier
* @throws PDIException on failure
*/
public IPDIMemoryBlock createMemoryBlock(BitList qTasks, String address, int units, int wordSize) throws PDIException;
/**
* Returns an array of all memory blocks set for this debug session.
* @param qTasks target process
* @return an array of all memory blocks set for this debug session
* @throws PDIException on failure
*/
public IPDIMemoryBlock[] getMemoryBlocks(BitList qTasks) throws PDIException;
/**
* Requests to remove all memory blocks from the debug session.
* @param tasks target process
* @throws PDIException on failure
*/
public void removeAllBlocks(BitList tasks) throws PDIException;
/**
* Requests to remove the given array of memory blocks from the debug session.
* @param tasks target process
* @param memoryBlock - the array of memory blocks to be removed
* @throws PDIException on failure
*/
public void removeBlocks(BitList tasks, IPDIMemoryBlock[] memoryBlocks) throws PDIException;
/**
* @param block
* @param aList
* @return
* @throws PDIException
*/
public BigInteger[] update(IPDIMemoryBlock block, List<IPDIEvent> aList) throws PDIException;
}