blob: e7b6eadeb6edaf2e4ccbbfeaead0171828869313 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2010 Wind River Systems, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v1.0 which accompany this distribution.
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Wind River Systems - initial API and implementation
*******************************************************************************/
/*
* This module holds execution context memory maps.
*/
#ifndef D_memorymap
#define D_memorymap
#include <config.h>
#include <framework/context.h>
#include <framework/protocol.h>
/*
* Get memory maps for given context.
* 'client_map' returns map entries that are created by the agent clients.
* 'target_map' returns map entries that the agent has found on a target.
* Return -1 and set errno if the context memory map cannot be retrieved.
*/
extern int memory_map_get(Context * ctx, MemoryMap ** client_map, MemoryMap ** target_map);
/*
* Functions that are used by context implementation to notify memory map services about map changes.
*/
extern void memory_map_event_module_loaded(Context * ctx);
extern void memory_map_event_code_section_ummapped(Context * ctx, ContextAddress addr, ContextAddress size);
extern void memory_map_event_module_unloaded(Context * ctx);
/*
* Memory map listener.
*/
typedef struct MemoryMapEventListener {
void (*module_loaded)(Context * ctx, void * client_data);
void (*code_section_ummapped)(Context * ctx, ContextAddress addr, ContextAddress size, void * client_data);
void (*module_unloaded)(Context * ctx, void * client_data);
} MemoryMapEventListener;
/*
* Add memory map listener.
*/
extern void add_memory_map_event_listener(MemoryMapEventListener * listener, void * client_data);
extern void ini_memory_map_service(Protocol * proto, TCFBroadcastGroup * bcg);
#endif