#ifndef LKR_CUST_DECLARE_TABLE #include "lkrhash.h" #ifndef __LKRHASH_NO_NAMESPACE__ #define LKRHASH_NS LKRhash using namespace LKRhash; typedef LKRhash::CLKRLinearHashTable CLinearHashTable; typedef LKRhash::CLKRHashTable CHashTable; #else #define LKRHASH_NS typedef CLKRLinearHashTable CLinearHashTable; typedef CLKRHashTable CHashTable; #endif // !__LKRHASH_NO_NAMESPACE__ typedef BOOL (CALLBACK * PFN_LKHT_DUMP)( IN CLKRHashTable* pht, IN INT nVerbose); typedef BOOL (CALLBACK * PFN_LKLH_DUMP)( IN CLKRLinearHashTable* plht, IN INT nVerbose); typedef BOOL (CALLBACK * PFN_RECORD_DUMP)( IN const void* pvRecord, IN DWORD dwSignature, IN INT nVerbose); struct LKR_CUST_EXTN { LPCSTR m_pszTableName; PFN_LKHT_DUMP m_pfn_LKHT_Dump; PFN_LKLH_DUMP m_pfn_LKLH_Dump; PFN_RECORD_DUMP m_pfn_Record_Dump; }; LKR_CUST_EXTN* FindLkrCustExtn( LPCSTR cmdName, VOID* lkrAddress, DWORD& rdwSig); BOOL EnumerateBucketChain( LKR_CUST_EXTN* plce, IN LOCK_LOCKTYPE ltBucketLockType, IN INT iBkt, IN CBucket* pbkt, IN INT nVerbose); BOOL EnumerateLKRLinearHashTable( LKR_CUST_EXTN* plce, IN CLinearHashTable* plht, IN INT nVerbose); BOOL EnumerateLKRhashTable( LKR_CUST_EXTN* plce, IN CHashTable* pht, IN INT nVerbose); # define BEGIN_LKR_EXTN_TABLE() # define LKR_EXTN_DECLARE(_TableStr, _Fn_LKHT_Dump, _Fn_LKLH_Dump, _Fn_Record_Dump) \ \ extern \ BOOL \ WINAPI \ _Fn_LKHT_Dump( \ IN CLKRHashTable* pht, \ IN INT nVerbose); \ \ extern \ BOOL \ WINAPI \ _Fn_LKLH_Dump( \ IN CLKRLinearHashTable* plht, \ IN INT nVerbose); \ \ extern \ BOOL \ WINAPI \ _Fn_Record_Dump( \ IN const void* pvRecord, \ IN DWORD dwSignature, \ IN INT nVerbose); \ # define END_LKR_EXTN_TABLE() #else // LKR_CUST_DECLARE_TABLE #undef BEGIN_LKR_EXTN_TABLE #undef LKR_EXTN_DECLARE #undef END_LKR_EXTN_TABLE #define BEGIN_LKR_EXTN_TABLE() \ LKR_CUST_EXTN g_alce[] = { #define LKR_EXTN_DECLARE(_TableStr, _Fn_LKHT_Dump, _Fn_LKLH_Dump, _Fn_Record_Dump) \ { #_TableStr, _Fn_LKHT_Dump, _Fn_LKLH_Dump, _Fn_Record_Dump }, #define END_LKR_EXTN_TABLE() \ { 0, 0, 0, 0}, \ }; #endif // LKR_CUST_DECLARE_TABLE BEGIN_LKR_EXTN_TABLE() LKR_EXTN_DECLARE(?, Dummy_LKHT_Dump, Dummy_LKLH_Dump, Dummy_Record_Dump) LKR_EXTN_DECLARE(wordhash, CWordHash_LKHT_Dump, CWordHash_LKLH_Dump, CWordHash_RecordDump) LKR_EXTN_DECLARE(string, CStringTest_TableDump, Dummy_LKLH_Dump, CTest_RecordDump) LKR_EXTN_DECLARE(NumberSet, CNumberSet_TableDump, Dummy_LKLH_Dump, int_RecordDump) LKR_EXTN_DECLARE(number, CNumberTest_TableDump, Dummy_LKLH_Dump, CTest_RecordDump) LKR_EXTN_DECLARE(VWtest, CWchar_TableDump, Dummy_LKLH_Dump, Vwrecord_RecordDump) END_LKR_EXTN_TABLE()