Blame src/st.h

Packit Service bd74e6
/* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */
Packit Service bd74e6
Packit Service bd74e6
/* @(#) st.h 5.1 89/12/14 */
Packit Service bd74e6
Packit Service bd74e6
#ifndef ST_INCLUDED
Packit Service bd74e6
Packit Service bd74e6
#define ST_INCLUDED
Packit Service bd74e6
Packit Service bd74e6
#ifdef _WIN32
Packit Service bd74e6
# include <windows.h>
Packit Service bd74e6
typedef ULONG_PTR st_data_t;
Packit Service bd74e6
#else
Packit Service bd74e6
typedef unsigned long st_data_t;
Packit Service bd74e6
#endif
Packit Service bd74e6
#define ST_DATA_T_DEFINED
Packit Service bd74e6
Packit Service bd74e6
typedef struct st_table st_table;
Packit Service bd74e6
Packit Service bd74e6
struct st_hash_type {
Packit Service bd74e6
    int (*compare)();
Packit Service bd74e6
    int (*hash)();
Packit Service bd74e6
};
Packit Service bd74e6
Packit Service bd74e6
struct st_table {
Packit Service bd74e6
    struct st_hash_type *type;
Packit Service bd74e6
    int num_bins;
Packit Service bd74e6
    int num_entries;
Packit Service bd74e6
    struct st_table_entry **bins;
Packit Service bd74e6
};
Packit Service bd74e6
Packit Service bd74e6
#define st_is_member(table,key) st_lookup(table,key,(st_data_t *)0)
Packit Service bd74e6
Packit Service bd74e6
enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};
Packit Service bd74e6
Packit Service bd74e6
#ifndef _
Packit Service bd74e6
# define _(args) args
Packit Service bd74e6
#endif
Packit Service bd74e6
#ifndef ANYARGS
Packit Service bd74e6
# ifdef __cplusplus
Packit Service bd74e6
#   define ANYARGS ...
Packit Service bd74e6
# else
Packit Service bd74e6
#   define ANYARGS
Packit Service bd74e6
# endif
Packit Service bd74e6
#endif
Packit Service bd74e6
Packit Service bd74e6
st_table *st_init_table _((struct st_hash_type *));
Packit Service bd74e6
st_table *st_init_table_with_size _((struct st_hash_type *, int));
Packit Service bd74e6
st_table *st_init_numtable _((void));
Packit Service bd74e6
st_table *st_init_numtable_with_size _((int));
Packit Service bd74e6
st_table *st_init_strtable _((void));
Packit Service bd74e6
st_table *st_init_strtable_with_size _((int));
Packit Service bd74e6
int st_delete _((st_table *, st_data_t *, st_data_t *));
Packit Service bd74e6
int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t));
Packit Service bd74e6
int st_insert _((st_table *, st_data_t, st_data_t));
Packit Service bd74e6
int st_lookup _((st_table *, st_data_t, st_data_t *));
Packit Service bd74e6
int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
Packit Service bd74e6
void st_add_direct _((st_table *, st_data_t, st_data_t));
Packit Service bd74e6
void st_free_table _((st_table *));
Packit Service bd74e6
void st_cleanup_safe _((st_table *, st_data_t));
Packit Service bd74e6
st_table *st_copy _((st_table *));
Packit Service bd74e6
Packit Service bd74e6
#define ST_NUMCMP	((int (*)()) 0)
Packit Service bd74e6
#define ST_NUMHASH	((int (*)()) -2)
Packit Service bd74e6
Packit Service bd74e6
#define st_numcmp	ST_NUMCMP
Packit Service bd74e6
#define st_numhash	ST_NUMHASH
Packit Service bd74e6
Packit Service bd74e6
#endif /* ST_INCLUDED */