aboutsummaryrefslogtreecommitdiff
path: root/src/lib/third_party/include/hash.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/third_party/include/hash.h')
-rw-r--r--src/lib/third_party/include/hash.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/lib/third_party/include/hash.h b/src/lib/third_party/include/hash.h
new file mode 100644
index 000000000..8862671b1
--- /dev/null
+++ b/src/lib/third_party/include/hash.h
@@ -0,0 +1,27 @@
+/* Based on https://gist.github.com/tonious/1377667 */
+
+#ifndef _HASH_H_
+#define _HASH_H_
+
+struct entry_s {
+ char *key;
+ u_int16_t value;
+ struct entry_s *next;
+};
+
+typedef struct entry_s entry_t;
+
+struct hashtable_s {
+ int size;
+ struct entry_s **table;
+};
+
+typedef struct hashtable_s hashtable_t;
+
+extern hashtable_t *ht_create( int size );
+extern int ht_hash( hashtable_t *hashtable, char *key );
+extern entry_t *ht_newpair( char *key, u_int16_t value );
+extern void ht_set( hashtable_t *hashtable, char *key, u_int16_t value );
+extern u_int16_t ht_get( hashtable_t *hashtable, char *key );
+
+#endif /* _HASH_H_ */