180 lines
5.4 KiB
C
180 lines
5.4 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 2000 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
fusionfacilities.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Include file that is included MULTIPLE TIMES to get varying effects
|
||
|
of defining global variables vs. references to those global variables
|
||
|
vs. symbols that you can use when writing output to scope it to
|
||
|
a facility.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Michael J. Grier (MGrier) 7/28/2000
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
//
|
||
|
// NO INCLUSION PROTECTION!!! BY DESIGN!!!
|
||
|
//
|
||
|
// NO PRAGMA ONCE PLEASE!!
|
||
|
//
|
||
|
|
||
|
#if !defined(FUSION_FACILITY_MASK_NAME)
|
||
|
#define FUSION_FACILITY_MASK_NAME(_x) g_FUSION_ ## _x ## _MASK
|
||
|
#endif
|
||
|
|
||
|
#if defined(FUSION_DEFINE_FACILITY_MASK_VARIABLE_DEFS)
|
||
|
|
||
|
#if !defined(FUSION_FACILITY_VARIABLE_DEFS_DEFINED)
|
||
|
#define FUSION_FACILITY_BEFORE_FACILITIES() /* nothing */
|
||
|
#define FUSION_FACILITY(_facname) DWORD FUSION_FACILITY_MASK_NAME(_facname);
|
||
|
#define FUSION_FACILITY_AFTER_FACILITIES() /* nothing */
|
||
|
#define FUSION_FACILITY_VARIABLE_DEFS_DEFINED 1
|
||
|
#else
|
||
|
#define FUSION_FACILITY_BEFORE_FACILITIES() /* nothing */
|
||
|
#define FUSION_FACILITY(_facname) /* nothing */
|
||
|
#define FUSION_FACILITY_AFTER_FACILITIES() /* nothing */
|
||
|
#endif
|
||
|
|
||
|
#elif defined(FUSION_DEFINE_FACILITY_MASK_VARIABLE_ARRAY)
|
||
|
|
||
|
#if !defined(FUSION_FACILITY_MASK_VARIABLE_ARRAY_DEFINED)
|
||
|
#define FUSION_FACILITY_BEFORE_FACILITIES() static const DWORD *s_rgFusionFacilityMasks[] = {
|
||
|
#define FUSION_FACILITY(_facname) &FUSION_FACILITY_MASK_NAME(_facname),
|
||
|
#define FUSION_FACILITY_AFTER_FACILITIES() };
|
||
|
#define FUSION_FACILITY_MASK_VARIABLE_ARRAY_DEFINED 1
|
||
|
#else
|
||
|
#define FUSION_FACILITY_BEFORE_FACILITIES() /* nothing */
|
||
|
#define FUSION_FACILITY(_facname) /* nothing */
|
||
|
#define FUSION_FACILITY_AFTER_FACILITIES() /* nothing */
|
||
|
#endif
|
||
|
|
||
|
#elif defined(FUSION_DEFINE_FACILITY_STRUCTURE)
|
||
|
|
||
|
#if !defined(FUSION_FACILITY_STRUCTURE_DEFINED)
|
||
|
#define FUSION_FACILITY_BEFORE_FACILITIES() class CFusionFacilityList { public:
|
||
|
#define FUSION_FACILITY(_facname) char _facname;
|
||
|
#define FUSION_FACILITY_AFTER_FACILITIES() };
|
||
|
#define FUSION_FACILITY_STRUCTURE_DEFINED 1
|
||
|
#else
|
||
|
#define FUSION_FACILITY_BEFORE_FACILITIES() /* nothing */
|
||
|
#define FUSION_FACILITY(_facname) /* nothing */
|
||
|
#define FUSION_FACILITY_AFTER_FACILITIES() /* nothing */
|
||
|
#endif
|
||
|
|
||
|
#elif defined(FUSION_DEFINE_FACILITY_MASK_VARIABLE_REFS)
|
||
|
|
||
|
#if !defined(FUSION_FACILITY_VARIABLE_REFS_DEFINED)
|
||
|
#define FUSION_FACILITY_BEFORE_FACILITIES() /* nothing */
|
||
|
#define FUSION_FACILITY(_facname) EXTERN_C DWORD FUSION_FACILITY_MASK_NAME(_facname);
|
||
|
#define FUSION_FACILITY_AFTER_FACILITIES() /* nothing */
|
||
|
#define FUSION_FACILITY_VARIABLE_REFS_DEFINED 1
|
||
|
#else
|
||
|
#define FUSION_FACILITY_BEFORE_FACILITIES() /* nothing */
|
||
|
#define FUSION_FACILITY(_facname) /* nothing */
|
||
|
#define FUSION_FACILITY_AFTER_FACILITIES() /* nothing */
|
||
|
#endif
|
||
|
|
||
|
#elif defined(FUSION_DEFINE_FACILITY_CONSTANTS)
|
||
|
|
||
|
#if !defined(FUSION_FACILITY_CONSTANTS_DEFINED)
|
||
|
#define FUSION_DEFINE_FACILITY_STRUCTURE
|
||
|
#include "fusionfacilities.h"
|
||
|
#undef FUSION_DEFINE_FACILITY_STRUCTURE
|
||
|
#undef FUSION_FACILITY_BEFORE_FACILITIES
|
||
|
#undef FUSION_FACILITY
|
||
|
#undef FUSION_FACILITY_AFTER_FACILITIES
|
||
|
|
||
|
#define FUSION_DEFINE_FACILITY_MASK_VARIABLE_REFS
|
||
|
#include "fusionfacilities.h"
|
||
|
#undef FUSION_DEFINE_FACILITY_MASK_VARIABLE_REFS
|
||
|
#undef FUSION_FACILITY_BEFORE_FACILITIES
|
||
|
#undef FUSION_FACILITY
|
||
|
#undef FUSION_FACILITY_AFTER_FACILITIES
|
||
|
|
||
|
#define FUSION_FACILITY_BEFORE_FACILITIES() /* nothing */
|
||
|
#define FUSION_FACILITY(_facname) const ULONG FUSION_ ## _facname ## _ID = ((ULONG) FIELD_OFFSET(CFusionFacilityList, _facname));
|
||
|
#define FUSION_FACILITY_AFTER_FACILITIES() /* nothing */
|
||
|
|
||
|
#define FUSION_FACILITY_CONSTANTS_DEFINED 1
|
||
|
#else
|
||
|
#define FUSION_FACILITY_BEFORE_FACILITIES() /* nothing */
|
||
|
#define FUSION_FACILITY(_facname) /* nothing */
|
||
|
#define FUSION_FACILITY_AFTER_FACILITIES() /* nothing */
|
||
|
#endif
|
||
|
|
||
|
#elif defined(FUSION_DEFINE_FACILITY_DLLMAIN_DEFS)
|
||
|
|
||
|
#if !defined(FUSION_FACILITY_DLLMAIN_DEFS_DEFINED)
|
||
|
|
||
|
#define FUSION_DEFINE_FACILITY_CONSTANTS
|
||
|
#include "fusionfacilities.h"
|
||
|
#undef FUSION_DEFINE_FACILITY_CONSTANTS
|
||
|
#undef FUSION_FACILITY_BEFORE_FACILITIES
|
||
|
#undef FUSION_FACILITY
|
||
|
#undef FUSION_FACILITY_AFTER_FACILITIES
|
||
|
|
||
|
#define FUSION_DEFINE_FACILITY_MASK_VARIABLE_DEFS
|
||
|
#include "fusionfacilities.h"
|
||
|
#undef FUSION_DEFINE_FACILITY_MASK_VARIABLE_DEFS
|
||
|
#undef FUSION_FACILITY_BEFORE_FACILITIES
|
||
|
#undef FUSION_FACILITY
|
||
|
#undef FUSION_FACILITY_AFTER_FACILITIES
|
||
|
|
||
|
#define FUSION_DEFINE_FACILITY_MASK_VARIABLE_ARRAY
|
||
|
#include "fusionfacilities.h"
|
||
|
#undef FUSION_DEFINE_FACILITY_MASK_VARIABLE_ARRAY
|
||
|
#undef FUSION_FACILITY_BEFORE_FACILITIES
|
||
|
#undef FUSION_FACILITY
|
||
|
#undef FUSION_FACILITY_AFTER_FACILITIES
|
||
|
|
||
|
#define FUSION_FACILITY_DLLMAIN_DEFS_DEFINED 1
|
||
|
#endif
|
||
|
|
||
|
#define FUSION_FACILITY_BEFORE_FACILITIES() /* nothing */
|
||
|
#define FUSION_FACILITY(_facname) /* nothing */
|
||
|
#define FUSION_FACILITY_AFTER_FACILITIES() /* nothing */
|
||
|
|
||
|
#else
|
||
|
|
||
|
#define FUSION_DEFINE_FACILITY_CONSTANTS
|
||
|
#include "fusionfacilities.h"
|
||
|
#undef FUSION_DEFINE_FACILITY_CONSTANTS
|
||
|
|
||
|
#undef FUSION_FACILITY_BEFORE_FACILITIES
|
||
|
#undef FUSION_FACILITY
|
||
|
#undef FUSION_FACILITY_AFTER_FACILITIES
|
||
|
|
||
|
#define FUSION_FACILITY_BEFORE_FACILITIES() /* nothing */
|
||
|
#define FUSION_FACILITY(_facname) /* nothing */
|
||
|
#define FUSION_FACILITY_AFTER_FACILITIES() /* nothing */
|
||
|
|
||
|
#endif
|
||
|
|
||
|
//
|
||
|
// Add fusion facility definitions here:
|
||
|
//
|
||
|
|
||
|
FUSION_FACILITY_BEFORE_FACILITIES()
|
||
|
|
||
|
FUSION_FACILITY(HASH_TABLE)
|
||
|
FUSION_FACILITY(DEQUE)
|
||
|
FUSION_FACILITY(STRING_BUFFER)
|
||
|
FUSION_FACILITY(BINDING)
|
||
|
FUSION_FACILITY(POLICY)
|
||
|
|
||
|
FUSION_FACILITY_AFTER_FACILITIES()
|
||
|
|
||
|
#undef FUSION_FACILITY_BEFORE_FACILITIES
|
||
|
#undef FUSION_FACILITY
|
||
|
#undef FUSION_FACILITY_AFTER_FACILITIES
|
||
|
|