X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmesa%2Fmain%2Fhash.h;h=4f916f9d01fbeed6963f37f7b65e2d350c20ec83;hb=296adbd545b8efd38c9ed508166b2de2764a444b;hp=90659c81b418fd2fa00f014368c6a44e3954842f;hpb=9b8094a663f08b50f01e3bcce8d22e4415b253e4;p=mesa.git diff --git a/src/mesa/main/hash.h b/src/mesa/main/hash.h index 90659c81b41..4f916f9d01f 100644 --- a/src/mesa/main/hash.h +++ b/src/mesa/main/hash.h @@ -1,21 +1,24 @@ -/* $Id: hash.h,v 1.4 2000/03/21 22:20:42 brianp Exp $ */ +/** + * \file hash.h + * Generic hash table. + */ /* * Mesa 3-D graphics library - * Version: 3.3 - * - * Copyright (C) 1999-2000 Brian Paul All Rights Reserved. - * + * Version: 6.5.1 + * + * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL @@ -32,25 +35,35 @@ #include "glheader.h" -struct HashTable; - - - extern struct _mesa_HashTable *_mesa_NewHashTable(void); extern void _mesa_DeleteHashTable(struct _mesa_HashTable *table); -extern void *_mesa_HashLookup(const struct _mesa_HashTable *table, GLuint key); +extern void *_mesa_HashLookup(struct _mesa_HashTable *table, GLuint key); extern void _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *data); extern void _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key); +extern void +_mesa_HashDeleteAll(struct _mesa_HashTable *table, + void (*callback)(GLuint key, void *data, void *userData), + void *userData); + +extern void +_mesa_HashWalk(const struct _mesa_HashTable *table, + void (*callback)(GLuint key, void *data, void *userData), + void *userData); + extern GLuint _mesa_HashFirstEntry(struct _mesa_HashTable *table); +extern GLuint _mesa_HashNextEntry(const struct _mesa_HashTable *table, GLuint key); + extern void _mesa_HashPrint(const struct _mesa_HashTable *table); extern GLuint _mesa_HashFindFreeKeyBlock(struct _mesa_HashTable *table, GLuint numKeys); +extern void _mesa_test_hash_functions(void); + #endif