windows-nt/Source/XPSP1/NT/net/rras/rtmv2/rtmglob.h
2020-09-26 16:20:57 +08:00

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__