////////////////////////////////////////////////////////////////////////////// // Project: Redpants Kernel // // Date: 5-12-2000 // // Module: shell/hashtable.h // // Purpose: This is the kernel, the main portion of the operating system, // // that handles all the duties of a modern operating system. // // // // Created 2000, by Ben L. Titzer // ////////////////////////////////////////////////////////////////////////////// #ifndef __KERNEL_HASHTABLE_H #define __KERNEL_HASHTABLE_H #include <sys/types.h> typedef struct hashelem_t hashelem_t; struct hashelem_t { const wchar_t* str; // string key void *data; // the data }; typedef struct hashtable_t hashtable_t; struct hashtable_t { dword size, used; hashelem_t *table; }; hashtable_t* hashCreate(dword size); dword hashInsert(hashtable_t*, hashelem_t *); void hashResize(hashtable_t*); hashelem_t* hashFind(hashtable_t*, const wchar_t*); void hashList(hashtable_t*, void (*callback)(hashelem_t *e)); dword hash(const wchar_t*); // hash function #endif