mirror of https://github.com/tongzx/nt5src
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.
115 lines
2.6 KiB
115 lines
2.6 KiB
/*++
|
|
|
|
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__
|
|
|