20 lines
650 B
C
20 lines
650 B
C
#ifndef __CACHE_H
|
|
#define __CACHE_H
|
|
|
|
typedef void * cache_t;
|
|
typedef void (*cache_free_fn)(void *p);
|
|
|
|
extern cache_t cache_init(int size, cache_free_fn);
|
|
extern void cache_free(cache_t cache);
|
|
extern int cache_forget(cache_t cache, void *p);
|
|
extern void cache_zap(cache_t cache);
|
|
extern void cache_shrink(cache_t cache);
|
|
extern void *cache_get(cache_t cache, const char *name);
|
|
extern void *cache_lookup(cache_t cache, const char *name);
|
|
extern int cache_add(cache_t cache, const char *name, void *p);
|
|
extern int cache_have(cache_t cache, void *p);
|
|
extern unsigned long hash_addr(void *p);
|
|
extern unsigned long hash_string(const char *str);
|
|
|
|
#endif
|