summaryrefslogtreecommitdiff
path: root/src/proto.h
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2021-11-07 20:18:31 +0200
committerSergey Poznyakoff <gray@gnu.org>2021-11-14 13:29:42 +0200
commit322f6e9c3c13d3079306628b96864f728f87be62 (patch)
tree997592aae23da27552e9cbc3549dd58b2e044e5b /src/proto.h
parent45d2ce49d88bc59bbc84dc738a55142205a6e2ce (diff)
downloadgdbm-322f6e9c3c13d3079306628b96864f728f87be62.tar.gz
Switch to hash table cache implementation
* src/cachetree.c: Remove. * src/Makefile.am: Remove cachetree.c * doc/gdbm.texi: Document the changes. * src/bucket.c (cache_tab_lookup_slot) (cache_tab_resize): New function. (cache_elem_new): Initialize ca_coll. (cache_elem_free, cache_lookup) (_gdbm_cache_init,_gdbm_cache_free): Rewrite with hash-based cache lookup. (_gdbm_fetch_data): Remove unused function. * src/gdbm.h.in (GDBM_GETDBFORMAT, GDBM_GETDIRDEPTH) (GDBM_GETBUCKETSIZE, GDBM_GETCACHEAUTO, GDBM_SETCACHEAUTO): New option codes. * src/gdbmdefs.h (cache_node): Remove. (cache_elem): Remove ca_node. Add ca_coll (collision resolution pointer). (gdbm_file_info): New members: cache_auto, cache_bits, cache. * src/gdbmopen.c (gdbm_fd_open): Change cache initialization. * src/gdbmsetopt.c (GDBM_GETDBFORMAT,GDBM_GETDIRDEPTH) (GDBM_GETBUCKETSIZE,GDBM_GETCACHEAUTO) (GDBM_SETCACHEAUTO): Implement new options. (setopt_gdbm_getflags): Reflect the state of GDBM_CLOEXEC and GDBM_NUMSYNC. * src/proto.h (_gdbm_fetch_data,_gdbm_cache_tree_alloc) (_gdbm_cache_tree_destroy,_gdbm_cache_tree_delete) (_gdbm_cache_tree_lookup): Remove protos. * src/recover.c (_gdbm_finish_transfer): Restore original cache settings. * tests/Makefile.am: Add new test. * tests/testsuite.at: Likewise. * tests/gtcacheopt.c: New file. * tests/setopt02.at: New test case.
Diffstat (limited to 'src/proto.h')
-rw-r--r--src/proto.h15
1 files changed, 0 insertions, 15 deletions
diff --git a/src/proto.h b/src/proto.h
index a5d6d10..68b2bc3 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -20,7 +20,6 @@
/* From bucket.c */
void _gdbm_new_bucket (GDBM_FILE, hash_bucket *, int);
int _gdbm_get_bucket (GDBM_FILE, int);
-int _gdbm_fetch_data (GDBM_FILE dbf, off_t off, size_t size, void *buf);
int _gdbm_split_bucket (GDBM_FILE, int);
int _gdbm_write_bucket (GDBM_FILE, cache_elem *);
@@ -103,10 +102,6 @@ int _gdbm_dump (GDBM_FILE dbf, FILE *fp);
/* From recover.c */
int _gdbm_next_bucket_dir (GDBM_FILE dbf, int bucket_dir);
-/* cachetree.c */
-cache_tree *_gdbm_cache_tree_alloc (void);
-void _gdbm_cache_tree_destroy (cache_tree *tree);
-void _gdbm_cache_tree_delete (cache_tree *tree, struct cache_node *n);
/* avail.c */
int gdbm_avail_block_validate (GDBM_FILE dbf, avail_block *avblk, size_t size);
@@ -116,16 +111,6 @@ int gdbm_avail_traverse (GDBM_FILE dbf,
void *data);
-/* Return codes for _gdbm_cache_tree_lookup. */
-enum
- {
- node_found, /* Returned element was found in cache. */
- node_new, /* Returned element has been created and inserted to cache */
- node_failure /* An error occurred. */
- };
-
-int _gdbm_cache_tree_lookup (cache_tree *tree, off_t adr, cache_node **retval);
-
/* I/O functions */
static inline ssize_t
gdbm_file_read (GDBM_FILE dbf, void *buf, size_t size)