21 #include "splay-tree.h"
37 struct obstack *obstack);
121 "addrmap_fixed_set_empty: "
122 "fixed addrmaps can't be changed\n");
141 if (mid->
addr == addr)
146 else if (mid->
addr < addr)
155 return bottom->
value;
163 _(
"addrmap_create_fixed is not implemented yet "
164 "for fixed addrmaps"));
244 static splay_tree_key
250 return (splay_tree_key) key;
255 static splay_tree_node
258 return splay_tree_lookup (map->
tree, (splay_tree_key) &addr);
262 static splay_tree_node
265 return splay_tree_predecessor (map->
tree, (splay_tree_key) &addr);
269 static splay_tree_node
272 return splay_tree_successor (map->
tree, (splay_tree_key) &addr);
279 splay_tree_remove (map->
tree, (splay_tree_key) &addr);
293 return (
void *) node->value;
300 node->value = (splay_tree_value) value;
308 splay_tree_insert (map->
tree,
310 (splay_tree_value) value);
338 splay_tree_node n, next;
378 if (addrmap_node_value (n) == prior_value)
391 _(
"addrmap_find is not implemented yet "
392 "for mutable addrmaps"));
401 size_t *count = (
size_t *) closure;
439 fixed = obstack_alloc (obstack,
455 return (
struct addrmap *) fixed;
464 _(
"addrmap_relocate is not implemented yet "
465 "for mutable addrmaps"));
484 return foreach_data->
fn (foreach_data->
data,
497 foreach_data.
fn =
fn;
532 return obstack_alloc (map->
obstack, size);
540 splay_tree_node n = obj;
603 gdb_assert (
sizeof (splay_tree_value) >=
sizeof (
void *));
static const struct addrmap_funcs addrmap_mutable_funcs
static void addrmap_node_set_value(splay_tree_node node, void *value)
void *(* find)(struct addrmap *self, CORE_ADDR addr)
void internal_error(const char *file, int line, const char *fmt,...)
void(* relocate)(struct addrmap *self, CORE_ADDR offset)
static void addrmap_mutable_relocate(struct addrmap *self, CORE_ADDR offset)
int addrmap_foreach(struct addrmap *map, addrmap_foreach_fn fn, void *data)
static void splay_obstack_free(void *obj, void *closure)
int(* addrmap_foreach_fn)(void *data, CORE_ADDR start_addr, void *obj)
static void force_transition(struct addrmap_mutable *self, CORE_ADDR addr)
static CORE_ADDR addrmap_node_key(splay_tree_node node)
const struct addrmap_funcs * funcs
static int splay_foreach_copy(splay_tree_node n, void *closure)
static int splay_foreach_count(splay_tree_node n, void *closure)
void initialize_file_ftype(void)
void(* set_empty)(struct addrmap *self, CORE_ADDR start, CORE_ADDR end_inclusive, void *obj)
static void * addrmap_fixed_find(struct addrmap *self, CORE_ADDR addr)
static void * addrmap_node_value(splay_tree_node node)
static splay_tree_node addrmap_splay_tree_lookup(struct addrmap_mutable *map, CORE_ADDR addr)
struct addrmap * addrmap_create_mutable(struct obstack *obstack)
splay_tree_node free_nodes
static int addrmap_fixed_foreach(struct addrmap *self, addrmap_foreach_fn fn, void *data)
void addrmap_set_empty(struct addrmap *map, CORE_ADDR start, CORE_ADDR end_inclusive, void *obj)
static void * addrmap_mutable_find(struct addrmap *self, CORE_ADDR addr)
static struct addrmap * addrmap_mutable_create_fixed(struct addrmap *self, struct obstack *obstack)
static int addrmap_mutable_foreach(struct addrmap *self, addrmap_foreach_fn fn, void *data)
static const struct addrmap_funcs addrmap_fixed_funcs
int(* foreach)(struct addrmap *self, addrmap_foreach_fn fn, void *data)
static void addrmap_splay_tree_remove(struct addrmap_mutable *map, CORE_ADDR addr)
const char const char int
static splay_tree_node addrmap_splay_tree_predecessor(struct addrmap_mutable *map, CORE_ADDR addr)
static int splay_compare_CORE_ADDR_ptr(splay_tree_key ak, splay_tree_key bk)
static struct addrmap * addrmap_fixed_create_fixed(struct addrmap *self, struct obstack *obstack)
static void addrmap_fixed_relocate(struct addrmap *self, CORE_ADDR offset)
static void addrmap_mutable_set_empty(struct addrmap *self, CORE_ADDR start, CORE_ADDR end_inclusive, void *obj)
struct addrmap *(* create_fixed)(struct addrmap *self, struct obstack *obstack)
struct addrmap * addrmap_create_fixed(struct addrmap *original, struct obstack *obstack)
static splay_tree_node addrmap_splay_tree_successor(struct addrmap_mutable *map, CORE_ADDR addr)
void addrmap_relocate(struct addrmap *map, CORE_ADDR offset)
static int addrmap_mutable_foreach_worker(splay_tree_node node, void *data)
static void * splay_obstack_alloc(int size, void *closure)
void * addrmap_find(struct addrmap *map, CORE_ADDR addr)
static void addrmap_fixed_set_empty(struct addrmap *self, CORE_ADDR start, CORE_ADDR end_inclusive, void *obj)
initialize_file_ftype _initialize_addrmap
struct addrmap_transition transitions[1]
static splay_tree_key allocate_key(struct addrmap_mutable *map, CORE_ADDR addr)
static void addrmap_splay_tree_insert(struct addrmap_mutable *map, CORE_ADDR key, void *value)