diff options
author | cvs2svn <> | 2002-03-11 00:01:12 +0000 |
---|---|---|
committer | cvs2svn <> | 2002-03-11 00:01:12 +0000 |
commit | 24d0ef8fa9054f81b2280bbb206a673c1959f4cb (patch) | |
tree | 79ad3fe4c8aeea7f45709e2d6e3da35bd8d30d9b /include/splay-tree.h | |
parent | 34124a07180b9c8c7479517436c49292cfd12dcd (diff) | |
download | cygnal-24d0ef8fa9054f81b2280bbb206a673c1959f4cb.tar.gz cygnal-24d0ef8fa9054f81b2280bbb206a673c1959f4cb.tar.bz2 cygnal-24d0ef8fa9054f81b2280bbb206a673c1959f4cb.zip |
This commit was manufactured by cvs2svn to create branch 'gdb_5_2-branch'.
Sprout from binutils-2_12-branch 2002-02-09 22:54:17 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'binutils-'
Cherrypick from master 2002-03-01 00:52:59 UTC Alexandre Oliva <aoliva@redhat.com> '* configure.in (libstdcxx_flags): Don't add libstdc++-v3 flags for':
ChangeLog
Makefile.in
config.guess
config.sub
configure.in
etc/ChangeLog
etc/fdl.texi
etc/make-stds.texi
etc/standards.texi
include/ChangeLog
include/bfdlink.h
include/elf/ChangeLog
include/elf/m68k.h
include/elf/ppc.h
include/opcode/ChangeLog
include/opcode/i386.h
include/opcode/ppc.h
include/splay-tree.h
texinfo/texinfo.tex
Cherrypick from master 2002-03-11 00:01:11 UTC Daniel Jacobowitz <drow@false.org> 'gdb/:':
include/gdb/ChangeLog
include/gdb/signals.h
Diffstat (limited to 'include/splay-tree.h')
-rw-r--r-- | include/splay-tree.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/splay-tree.h b/include/splay-tree.h index 690396940..4b7a7bf8c 100644 --- a/include/splay-tree.h +++ b/include/splay-tree.h @@ -61,6 +61,18 @@ typedef void (*splay_tree_delete_value_fn) PARAMS((splay_tree_value)); /* The type of a function used to iterate over the tree. */ typedef int (*splay_tree_foreach_fn) PARAMS((splay_tree_node, void*)); +/* The type of a function used to allocate memory for tree root and + node structures. The first argument is the number of bytes needed; + the second is a data pointer the splay tree functions pass through + to the allocator. This function must never return zero. */ +typedef void *(*splay_tree_allocate_fn) PARAMS((int, void *)); + +/* The type of a function used to free memory allocated using the + corresponding splay_tree_allocate_fn. The first argument is the + memory to be freed; the latter is a data pointer the splay tree + functions pass through to the freer. */ +typedef void (*splay_tree_deallocate_fn) PARAMS((void *, void *)); + /* The nodes in the splay tree. */ struct splay_tree_node_s { @@ -89,11 +101,24 @@ typedef struct splay_tree_s /* The deallocate-value function. NULL if no cleanup is necessary. */ splay_tree_delete_value_fn delete_value; + + /* Allocate/free functions, and a data pointer to pass to them. */ + splay_tree_allocate_fn allocate; + splay_tree_deallocate_fn deallocate; + void *allocate_data; + } *splay_tree; extern splay_tree splay_tree_new PARAMS((splay_tree_compare_fn, splay_tree_delete_key_fn, splay_tree_delete_value_fn)); +extern splay_tree splay_tree_new_with_allocator + PARAMS((splay_tree_compare_fn, + splay_tree_delete_key_fn, + splay_tree_delete_value_fn, + splay_tree_allocate_fn, + splay_tree_deallocate_fn, + void *)); extern void splay_tree_delete PARAMS((splay_tree)); extern splay_tree_node splay_tree_insert PARAMS((splay_tree, |