-/**
- * Returns the hash code of a string.
- */
-static unsigned int xbt_lib_hash_ext(const char *str,
- int str_len)
-{
-
-
-#ifdef DJB2_HASH_FUNCTION
- /* fast implementation of djb2 algorithm */
- int c;
- register unsigned int hash = 5381;
-
- while (str_len--) {
- c = *str++;
- hash = ((hash << 5) + hash) + c; /* hash * 33 + c */
- }
-# elif defined(FNV_HASH_FUNCTION)
- register unsigned int hash = 0x811c9dc5;
- unsigned char *bp = (unsigned char *) str; /* start of buffer */
- unsigned char *be = bp + str_len; /* beyond end of buffer */
-
- while (bp < be) {
- /* multiply by the 32 bit FNV magic prime mod 2^32 */
- hash +=
- (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) +
- (hash << 24);
-
- /* xor the bottom with the current octet */
- hash ^= (unsigned int) *bp++;
- }
-
-# else
- register unsigned int hash = 0;
-
- while (str_len--) {
- hash += (*str) * (*str);
- str++;
- }
-#endif
-
- return hash;
-}
-
-static unsigned int xbt_lib_hash(const char *str)
-{
-#ifdef DJB2_HASH_FUNCTION
- /* fast implementation of djb2 algorithm */
- int c;
- register unsigned int hash = 5381;
-
- while ((c = *str++)) {
- hash = ((hash << 5) + hash) + c; /* hash * 33 + c */
- }
-
-# elif defined(FNV_HASH_FUNCTION)
- register unsigned int hash = 0x811c9dc5;
-
- while (*str) {
- /* multiply by the 32 bit FNV magic prime mod 2^32 */
- hash +=
- (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) +
- (hash << 24);
-
- /* xor the bottom with the current byte */
- hash ^= (unsigned int) *str++;
- }
-
-# else
- register unsigned int hash = 0;
-
- while (*str) {
- hash += (*str) * (*str);
- str++;
- }
-#endif
- return hash;
-}
-
-static void xbt_lib_rehash(xbt_lib_t lib)
-{
- xbt_die("xbt_lib_rehash not yet implemented!");
-}
-
-void xbt_lib_cursor_first(const xbt_lib_t lib,
- xbt_lib_cursor_t * cursor)
-{
- XBT_DEBUG("xbt_lib_cursor_first");
- if (!*cursor) {
- XBT_DEBUG("Create the cursor on first use");
- *cursor = xbt_lib_cursor_new(lib);
- } else {
- xbt_lib_cursor_rewind(*cursor);
- }
- if (lib != NULL && (*cursor)->current == NULL) {
- xbt_lib_cursor_step(*cursor); /* find the first element */
- }
-}
-
-static xbt_lib_cursor_t xbt_lib_cursor_new(const xbt_lib_t lib)