X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fhash.h;h=d18db76abe1b3cc294c5090dbe1877e4c67ce78f;hb=727b2d747e13fed78bf62cfbf4a31427eed0ef29;hp=32adf52dd54538f3ddb33d4d974556045535b540;hpb=bb79790662f56eb71aafd3f020cd86ad810f56b2;p=mesa.git diff --git a/src/mesa/main/hash.h b/src/mesa/main/hash.h index 32adf52dd54..d18db76abe1 100644 --- a/src/mesa/main/hash.h +++ b/src/mesa/main/hash.h @@ -1,21 +1,24 @@ -/* $Id: hash.h,v 1.3 2000/01/24 16:19:54 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,10 +35,6 @@ #include "glheader.h" -struct HashTable; - - - extern struct _mesa_HashTable *_mesa_NewHashTable(void); extern void _mesa_DeleteHashTable(struct _mesa_HashTable *table); @@ -46,11 +45,25 @@ extern void _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *da extern void _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key); -extern GLuint _mesa_HashFirstEntry(const struct _mesa_HashTable *table); +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(const struct _mesa_HashTable *table, GLuint numKeys); +extern GLuint _mesa_HashFindFreeKeyBlock(struct _mesa_HashTable *table, GLuint numKeys); + +extern void _mesa_test_hash_functions(void); #endif