116 lines
2.6 KiB
C
116 lines
2.6 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1997-1998 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
rtmglob.h
|
||
|
|
||
|
Abstract:
|
||
|
Global Vars for Routing Table Manager DLL
|
||
|
|
||
|
Author:
|
||
|
Chaitanya Kodeboyina (chaitk) 25-Sep-1998
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef __ROUTING_RTMGLOB_H__
|
||
|
#define __ROUTING_RTMGLOB_H__
|
||
|
|
||
|
//
|
||
|
// Global Information common to all RTM instances
|
||
|
//
|
||
|
|
||
|
#define INSTANCE_TABLE_SIZE 1
|
||
|
|
||
|
typedef struct _RTMP_GLOBAL_INFO
|
||
|
{
|
||
|
ULONG TracingHandle; //
|
||
|
HANDLE LoggingHandle; // Handles to debugging functionality
|
||
|
ULONG LoggingLevel; //
|
||
|
|
||
|
DWORD TracingFlags; // Flags that control debug tracing
|
||
|
|
||
|
HANDLE GlobalHeap; // Handle to the private memory heap
|
||
|
|
||
|
#if DBG_MEM
|
||
|
CRITICAL_SECTION AllocsLock; // Protects the list of allocations
|
||
|
|
||
|
LIST_ENTRY AllocsList; // List of all allocated mem blocks
|
||
|
#endif
|
||
|
|
||
|
PCHAR RegistryPath; // Registry Key that has RTM config
|
||
|
|
||
|
RTL_RESOURCE InstancesLock; // Protects the instances' table
|
||
|
// and instance infos themselves
|
||
|
// and RTM API Initialization too
|
||
|
|
||
|
BOOL ApiInitialized; // TRUE if API has been initialized
|
||
|
|
||
|
UINT NumInstances; // Global table of all RTM instances
|
||
|
LIST_ENTRY InstanceTable[INSTANCE_TABLE_SIZE];
|
||
|
}
|
||
|
RTMP_GLOBAL_INFO, *PRTMP_GLOBAL_INFO;
|
||
|
|
||
|
|
||
|
//
|
||
|
// Externs for global variables for the RTMv2 DLL
|
||
|
//
|
||
|
|
||
|
extern RTMP_GLOBAL_INFO RtmGlobals;
|
||
|
|
||
|
|
||
|
//
|
||
|
// Macros for acquiring various locks defined in this file
|
||
|
//
|
||
|
|
||
|
#if DBG_MEM
|
||
|
|
||
|
#define ACQUIRE_ALLOCS_LIST_LOCK() \
|
||
|
ACQUIRE_LOCK(&RtmGlobals.AllocsLock)
|
||
|
|
||
|
#define RELEASE_ALLOCS_LIST_LOCK() \
|
||
|
RELEASE_LOCK(&RtmGlobals.AllocsLock)
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#define ACQUIRE_INSTANCES_READ_LOCK() \
|
||
|
ACQUIRE_READ_LOCK(&RtmGlobals.InstancesLock)
|
||
|
|
||
|
#define RELEASE_INSTANCES_READ_LOCK() \
|
||
|
RELEASE_READ_LOCK(&RtmGlobals.InstancesLock)
|
||
|
|
||
|
#define ACQUIRE_INSTANCES_WRITE_LOCK() \
|
||
|
ACQUIRE_WRITE_LOCK(&RtmGlobals.InstancesLock)
|
||
|
|
||
|
#define RELEASE_INSTANCES_WRITE_LOCK() \
|
||
|
RELEASE_WRITE_LOCK(&RtmGlobals.InstancesLock)
|
||
|
|
||
|
//
|
||
|
// Macros for controlling the amount of tracing in this dll
|
||
|
//
|
||
|
|
||
|
#if DBG_TRACE
|
||
|
|
||
|
#define TRACING_ENABLED(Type) \
|
||
|
(RtmGlobals.TracingFlags & RTM_TRACE_ ## Type)
|
||
|
|
||
|
#endif
|
||
|
|
||
|
//
|
||
|
// Other common helper functions
|
||
|
//
|
||
|
|
||
|
#if DBG_MEM
|
||
|
|
||
|
VOID
|
||
|
DumpAllocs (VOID);
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#endif //__ROUTING_RTMGLOB_H__
|
||
|
|