Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright(c) 1995 Microsoft Corporation
MODULE NAME table.h
ABSTRACT Header file for generic hash table routines.
AUTHOR Anthony Discolo (adiscolo) 28-Jul-1995
REVISION HISTORY
--*/
//
// Number of hash table buckets.
//
#define NBUCKETS 13
//
// Generic hash table structure.
//
typedef struct _HASH_TABLE { LIST_ENTRY ListEntry[NBUCKETS]; KSPIN_LOCK SpinLock; } HASH_TABLE, *PHASH_TABLE;
//
// Hash table enumerator procedure.
// Returns TRUE to continue enumeration,
// FALSE to terminate enumeration.
//
typedef BOOLEAN (*PHASH_TABLE_ENUM_PROC)(PVOID, PACD_ADDR, ULONG);
PHASH_TABLE NewTable();
VOID ClearTable( IN PHASH_TABLE pTable );
VOID FreeTable( IN PHASH_TABLE pTable );
VOID EnumTable( IN PHASH_TABLE pTable, IN PHASH_TABLE_ENUM_PROC pProc, IN PVOID pArg );
BOOLEAN GetTableEntry( IN PHASH_TABLE pTable, IN PACD_ADDR pszKey, OUT PULONG pulData );
BOOLEAN PutTableEntry( IN PHASH_TABLE pTable, IN PACD_ADDR pszKey, IN ULONG ulData );
BOOLEAN DeleteTableEntry( IN PHASH_TABLE pTable, IN PACD_ADDR pszKey );
|