/******************************************************************************* | |
* Copyright (c) 2010, 2011 Nokia 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: | |
* Nokia - Initial API and implementation | |
* Broadcom - addition of properties API | |
*******************************************************************************/ | |
package org.eclipse.cdt.debug.edc.symbols; | |
import java.util.Map; | |
import org.eclipse.cdt.core.IAddress; | |
import org.eclipse.cdt.debug.edc.IStreamBuffer; | |
/** | |
* This abstracts access to a particular section in an executable | |
*/ | |
public interface IExecutableSection extends IAddressInterval, IHasSize { | |
/** @since 3.0*/ | |
static final String PROPERTY_CONTAINER = "container"; //$NON-NLS-1$ | |
/** @since 3.0*/ | |
static final String PROPERTY_WRITABLE = "writable"; //$NON-NLS-1$ | |
/** @since 3.0*/ | |
static final String PROPERTY_EXECUTABLE = "executable"; //$NON-NLS-1$ | |
/** @since 3.0*/ | |
static final String PROPERTY_ALLOCATABLE = "allocatable"; //$NON-NLS-1$ | |
/** | |
* Get the base link address of the section | |
* | |
* @return the base link address | |
* @since 3.0 | |
*/ | |
IAddress getLinkAddress(); | |
/** | |
* Get the file offset of the section | |
* | |
* @return the file offset | |
* @since 3.0 | |
*/ | |
long getFileOffset(); | |
/** | |
* Get the buffer for the section. This may be thrown away and reloaded on demand. | |
* The buffer has the correct endianness already set. | |
* @return buffer, or <code>null</code> if failed to load | |
*/ | |
IStreamBuffer getBuffer(); | |
/** | |
* Free the buffer allocated for this section. | |
*/ | |
void dispose(); | |
/** | |
* Get the properties of the section | |
* | |
* @return the section properties | |
* @since 3.0 | |
*/ | |
Map<String, Object> getProperties(); | |
} |