X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fhash.h;h=d18db76abe1b3cc294c5090dbe1877e4c67ce78f;hb=727b2d747e13fed78bf62cfbf4a31427eed0ef29;hp=a38159ce0908dee7ef0894f2a858e32503e51be8;hpb=afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1c;p=mesa.git diff --git a/src/mesa/main/hash.h b/src/mesa/main/hash.h index a38159ce090..d18db76abe1 100644 --- a/src/mesa/main/hash.h +++ b/src/mesa/main/hash.h @@ -1,21 +1,24 @@ -/* $Id: hash.h,v 1.1 1999/08/19 00:55:41 jtg Exp $ */ +/** + * \file hash.h + * Generic hash table. + */ /* * Mesa 3-D graphics library - * Version: 3.1 - * - * Copyright (C) 1999 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 @@ -25,35 +28,42 @@ */ - - - #ifndef HASH_H #define HASH_H -#include "GL/gl.h" +#include "glheader.h" + +extern struct _mesa_HashTable *_mesa_NewHashTable(void); -struct HashTable; +extern void _mesa_DeleteHashTable(struct _mesa_HashTable *table); +extern void *_mesa_HashLookup(const struct _mesa_HashTable *table, GLuint key); +extern void _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *data); -extern struct HashTable *NewHashTable(void); +extern void _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key); -extern void DeleteHashTable(struct HashTable *table); +extern void +_mesa_HashDeleteAll(struct _mesa_HashTable *table, + void (*callback)(GLuint key, void *data, void *userData), + void *userData); -extern void *HashLookup(const struct HashTable *table, GLuint key); +extern void +_mesa_HashWalk(const struct _mesa_HashTable *table, + void (*callback)(GLuint key, void *data, void *userData), + void *userData); -extern void HashInsert(struct HashTable *table, GLuint key, void *data); +extern GLuint _mesa_HashFirstEntry(struct _mesa_HashTable *table); -extern void HashRemove(struct HashTable *table, GLuint key); +extern GLuint _mesa_HashNextEntry(const struct _mesa_HashTable *table, GLuint key); -extern GLuint HashFirstEntry(const struct HashTable *table); +extern void _mesa_HashPrint(const struct _mesa_HashTable *table); -extern void HashPrint(const struct HashTable *table); +extern GLuint _mesa_HashFindFreeKeyBlock(struct _mesa_HashTable *table, GLuint numKeys); -extern GLuint HashFindFreeKeyBlock(const struct HashTable *table, GLuint numKeys); +extern void _mesa_test_hash_functions(void); #endif