The function argument to remove_map is the identification number of a specific mapping, specified in the map_info structure when the mapping was created by add_map.
An object implementing the translate may have a target object that implements one of memory_space, _ram and _rom. This means that a translator object can translate an address into a new memory space, or a RAM/ROM object. The target argument may be set to NULL. Then the target has to be provided by the translator on each access, and it is assumed to be of the default memory space class.
An object implementing the bridge must have a target object that implements the memory_space.
The add_default function adds a mapping that is used for accesses to addresses without any other mapping. Default mappings can not map to objects that implement the _ram or _rom.
All functions in the map_demap return 1 on success and 0 on failure.
More information about the different kinds of memory space mappings is available in the Simics User Guide.
typedef struct { int (*add_map)(conf_object_t *NOTNULL space, conf_object_t *NOTNULL dev, conf_object_t *target, map_info_t map_info); int (*remove_map)(conf_object_t *NOTNULL space, conf_object_t *NOTNULL dev, int function); int (*add_default)(conf_object_t *NOTNULL space, conf_object_t *NOTNULL dev, conf_object_t *target, map_info_t map_info); void (*remove_default)(conf_object_t *NOTNULL space); } map_demap_interface_t; #define MAP_DEMAP_INTERFACE "map_demap"