Windows NT 4.0 source code leak
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.
|
|
/*** globals.h - global variables/needed across modules ************************
* * Copyright (c) 1988-1990, Microsoft Corporation. All rights reserved. * * Purpose: * Globals.c is the routine in which global variables reside. Globals.h mirrors * the declarations in globals.c as externs and is included in all routines that * use globals. * * Notes: * This module was created for an interesting reason. NMAKE handles recursive * calls by saving its global variables somewhere in memory. It handles this by * allocating all global variables which have value changes in each recursive * in adjacent memory. The routine called recursively is doMake() and before it * is called the address of this chunk of memory is stored. When the recursive * call returns the memory is restored using the stored address. startOfSave and * endOfSave give the location of this chunk. The reason this method was opted * for is that spawning of NMAKE would consume a lot of memory under DOS. This * might not be very efficient under OS/2 because the code gets shared. * * Revision History: * 15-Nov-1993 JdR Major speed improvements * 04-Apr-1990 SB Add fHeapChk * 01-Dec-1989 SB Made some variables near and pushed some into saveArea * 19-Oct-1989 SB variable fOptionK added (ifdef SLASHK) * 02-Oct-1989 SB add dynamic inline file handling support * 24-Apr-1989 SB Added ext_size, filename_size, filenameext_size & * resultbuf_size for OS/2 1.2 support * 05-Apr-1989 SB made revList, delList, scriptFileList NEAR * 22-Mar-1989 SB removed tmpFileStack and related variables * 16-Feb-1989 SB added delList to have scriptfile deletes at end of make * 21-Dec-1988 SB Added scriptFileList to handle multiple script files * removed tmpScriptFile and fKeep (not reqd anymore) * 19-Dec-1988 SB Added fKeep to handle KEEP/NOKEEP * 14-Dec-1988 SB Added tmpScriptFile for 'z' option * 30-Nov-1988 SB Added revList to handle 'z' option * 23-Nov-1988 SB Added CmdLine[] to handle extmake syntax * made pCmdLineCopy Global in build.c * 21-Oct-1988 SB Added fInheritUserEnv to inherit macros * 20-Sep-1988 RB Clean up. * 17-Aug-1988 RB Declare everything NEAR. * 06-Jul-1988 rj Ditched shell and argVector globals. * Put all ECS declarations as macros in here. * *******************************************************************************/
#if defined(STATISTICS)
extern unsigned long CntfindMacro; extern unsigned long CntmacroChains; extern unsigned long CntinsertMacro; extern unsigned long CntfindTarget; extern unsigned long CnttargetChains; extern unsigned long CntStriCmp; extern unsigned long CntunQuotes; extern unsigned long CntFreeStrList; extern unsigned long CntAllocStrList; #endif
extern UCHAR NEAR startOfSave; /* dummy variable */
extern BOOL NEAR fOptionK; /* user specified /K ? */ extern BOOL NEAR fDescRebuildOrder; /* user specified /O ? */ extern BOOL NEAR fNoEmsXms; /* user specified /M ? */ extern BOOL NEAR fSlashKStatus;
/* boolean used by action.c & nmake.c
* * Required for NMAKE enhancement -- to make NMAKE inherit user modified * changes in the environment. To be set to true before defineMacro() is * called so that user defined changes in environment variables are * reflected in the environment. If set to false then these changes are * made only in NMAKE tables and the environment remains unchanged * */
extern BOOL NEAR fInheritUserEnv;
/*
* TRUE if /b specified, Rebuild on tie */ extern BOOL NEAR fRebuildOnTie;
/*
* TRUE if /v specified, Inherit macros to child */ #if defined(SELF_RECURSE)
extern BOOL NEAR fInheritMacros; #endif
/* Used by action.c and nmake.c
* * delList is the list of delete commands for deleting inline files which are * to be deleted before NMAKE exits & have a NOKEEP action specified. */ extern STRINGLIST * NEAR delList;
/* Complete list of generated inline files. Required to avoid duplicate names
*/ extern STRINGLIST * NEAR inlineFileList;
#ifndef NO_OPTION_Z
/* Used by print.c and build.c and nmake.c
* * revList is the list of Commands in reverse order required for * implementing 'z' option. Used by printReverseFile(). */ extern STRINGLIST * NEAR revList; #endif
/* from NMAKE.C */
extern BOOL NEAR firstToken; /* to initialize parser */ extern BOOL NEAR bannerDisplayed; extern UCHAR NEAR flags; /* holds -d -s -n -i */ extern UCHAR NEAR gFlags; /* "global" -- all targets*/ extern char NEAR makeflags[]; extern FILE * NEAR file; extern STRINGLIST * NEAR makeTargets; /* list of targets to make*/ extern STRINGLIST * NEAR makeFiles; /* user can specify > 1 */ extern BOOL NEAR fDebug;
/* from LEXER.C */
extern unsigned NEAR line; extern BOOL NEAR colZero; /* global flag set if at column zero
of a makefile/tools.ini */ extern char * NEAR fName; extern char * NEAR string; extern INCLUDEINFO NEAR incStack[MAXINCLUDE]; extern int NEAR incTop;
/* Inline file list -- Gets created in lexer.c and is used by action.c to
* produce a delete command when 'NOKEEP' or Z option is set */ extern SCRIPTLIST * NEAR scriptFileList;
/* from PARSER.C */
#define STACKSIZE 16
extern UCHAR NEAR stack[STACKSIZE]; extern int NEAR top; /* gets pre-incremented before use*/ extern unsigned NEAR currentLine; /* used for all error messages */ extern BOOL NEAR init; /* global boolean value to indicate
if tools.ini is being parsed */
/* from ACTION.C */
extern MACRODEF * NEAR macroTable[MAXMACRO]; extern MAKEOBJECT * NEAR targetTable[MAXTARGET]; extern STRINGLIST * NEAR macros; extern STRINGLIST * NEAR dotSuffixList; extern STRINGLIST * NEAR dotPreciousList; extern RULELIST * NEAR rules; extern STRINGLIST * NEAR list; extern char * NEAR name; extern BUILDBLOCK * NEAR block; extern UCHAR NEAR currentFlags; extern UCHAR NEAR actionFlags;
/* from BUILD.C */
extern long NEAR errorLevel; extern unsigned NEAR numCommands; extern char * NEAR pCmdLineCopy;
/* Used to store expanded Command Line returned by SPRINTF, the result on
* expanding extmake syntax part in the command line */ extern char CmdLine[MAXCMDLINELENGTH];
/* from IFEXPR.C */
#define IFSTACKSIZE 16
extern UCHAR NEAR ifStack[IFSTACKSIZE]; extern int NEAR ifTop; /* gets pre-incremented before use */ extern char * NEAR lbufPtr; /* pointer to alloc'd buffer */ /* we don't use a static buffer so
that buffer may be realloced */ extern char * NEAR prevDirPtr; /* ptr to directive to be processed */ extern unsigned NEAR lbufSize; /* initial size of the buffer */
/* from UTIL.C */
extern char * NEAR dollarDollarAt; extern char * NEAR dollarLessThan; extern char * NEAR dollarStar; extern char * NEAR dollarAt; extern STRINGLIST * NEAR dollarQuestion; extern STRINGLIST * NEAR dollarStarStar;
extern char NEAR buf[MAXBUF]; /* from parser.c */
extern UCHAR NEAR endOfSave; /* dummy variable */
extern char NEAR suffixes[]; /* from action.c */ extern char NEAR ignore[]; extern char NEAR silent[]; extern char NEAR precious[];
extern unsigned NEAR ext_size; /* default .ext size */ extern unsigned NEAR filename_size; /* filename size */ extern unsigned NEAR filenameext_size; /* filename.ext size */ extern unsigned NEAR resultbuf_size; /* fileFindBuf size */
/* This flag activates special heap functionality.
* * When TRUE allocate() asks for extra bytes from CRT functions and adds * signatures before and after the allocation. Any subsequent calls to * free_memory() and realloc_memory() check for the presence of these * sentinels and assert when such trashing occurs. */
#ifdef HEAP
extern BOOL fHeapChk; #endif
|