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.
78 lines
1.2 KiB
78 lines
1.2 KiB
/*++
|
|
|
|
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
|
|
);
|
|
|