blob: ce9f748f6a574b8ffa3478d9a68b50d88ef566f9 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2010 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
*******************************************************************************/
package org.eclipse.cdt.debug.edc.internal.symbols;
import java.util.Map;
import org.eclipse.cdt.core.IAddress;
/**
* Interface representing a section in memory. It is segment in Elf file and a
* section in PE file.
*/
public interface ISection {
/**
* Commonly known properties of a section
*/
static final String PROPERTY_ID = "id"; //$NON-NLS-1$
static final String PROPERTY_SIZE = "size"; //$NON-NLS-1$
static final String PROPERTY_LINK_ADDRESS = "link_address"; //$NON-NLS-1$
/** Canonical section name: one of NAME_TEXT, NAME_DATA, NAME_RODATA, or NAME_BSS */
static final String PROPERTY_NAME = "name"; //$NON-NLS-1$
/* TODO: not used
static final String PROPERTY_READABLE = "readable";
static final String PROPERTY_WRITABLE = "writable";
static final String PROPERTY_EXECUTABLE = "executable";
*/
static final String NAME_TEXT = ".text"; //$NON-NLS-1$
static final String NAME_DATA = ".data"; //$NON-NLS-1$
static final String NAME_RODATA = ".rodata"; // read only data //$NON-NLS-1$
static final String NAME_BSS = ".bss"; // uninitialized data //$NON-NLS-1$
/**
* Get the section id
*
* @return the section id
*/
int getId();
/**
* Get the section size
*
* @return the section size
*/
long getSize();
/**
* Get the base link address of the section
*
* @return the base link address
*/
IAddress getLinkAddress();
/**
* Get the properties of the section
*
* @return the section properties
*/
Map<String, Object> getProperties();
}