Source code of Windows XP (NT5)
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.
|
|
/*************************************************/ /* Common Library Component private include file */ /*************************************************/
BOOL InfIsOpen(VOID);
#define PreCondInfOpen(r) PreCondition(InfIsOpen(),r)
/* INF internal limits
*/ #define cSectionsMax 0x1000
#define cKeysMax 0x1000
#define cchpFieldMax 0x2000
#define cchpBig ((CCHP)cbAllocMax)
#define cchpSmall ((CCHP)4*1024)
extern BOOL APIENTRY FFindFirstInfSection(VOID); extern BOOL APIENTRY FFindNextInfSection(VOID); extern BOOL APIENTRY FValidSectionLabel(VOID); extern BOOL APIENTRY FListValue(SZ);
#define SzSkipField(ch, f) SzSkipFieldFromLine(ch,fFalse,f)
#define SzGetField(ch) SzSkipFieldFromLine(ch,fTrue,fFalse)
/*
** Symbol Table Entry structure ** ** Fields: ** psteNext: next STE in linked list. ** szSymbol: zero terminated symbol string - non-NULL and non-empty. ** szValue: zero terminated value string - non-NULL. */ typedef struct _ste { struct _ste * psteNext; SZ szSymbol; SZ szValue; } STE;
/* Symbol Table Entry datatypes
*/ typedef STE * PSTE; typedef PSTE * PPSTE;
/* Number of STE structs in each STEB
*/ #define cStePerSteb 0x07FF
/*
** Symbol Table Entry Block structure ** ** Fields: ** pstebNext: next STEB in linked list. ** rgste[]: array of allocated STE structs. */ typedef struct _steb { struct _steb * pstebNext; STE rgste[cStePerSteb]; } STEB;
/* Symbol Table Entry Block datatypes
*/ typedef STEB * PSTEB;
/* Number of hash buckets in symbol hash table (must be a power of 2)
*/ #define cHashBuckets 255
/* Number of bytes used in hash function for finding a symbol
*/ #define cbBytesToSumForHash ((CB)25) // effectively all chars are used
//
// Symbol table
//
typedef struct _SYMTAB *PSYMTAB;
typedef struct _SYMTAB { PSTE HashBucket[cHashBuckets]; // Hash Buckets
#ifdef SYMTAB_STATS
UINT BucketCount[cHashBuckets]; // Bucket count in hash table
#endif
} SYMTAB;
extern PSTE psteUnused; extern PSTEB pstebAllocatedBlocks;
extern PSTE APIENTRY PsteAlloc(VOID); extern BOOL APIENTRY FFreePste(PSTE); extern USHORT APIENTRY UsHashFunction(PB); extern PPSTE APIENTRY PpsteFindSymbol(PSYMTAB, SZ); extern BOOL APIENTRY FAddSymbolFromInfLineToSymTab(INT Line);
extern PSYMTAB APIENTRY SymTabAlloc(VOID); extern BOOL APIENTRY FFreeSymTab(PSYMTAB); extern BOOL APIENTRY FCheckSymTab(PSYMTAB);
extern BOOL APIENTRY FValidFATPathChar(CHP);
#define PreCondFlowInit(r) PreCondition(psptFlow!=(PSPT)NULL,r)
/*
** Evaluation Return Code datatype */ typedef unsigned ERC; // 1632 was USHORT
#define ercError 0
#define ercTrue 1
#define ercFalse 2
/*
** Evaluate Compare Mode datatype */ typedef USHORT ECM;
#define ecmError 0
#define ecmIfStr 1
#define ecmIfStrI 2
#define ecmIfInt 3
#define ecmIfContains 4
#define ecmIfContainsI 5
extern BOOL APIENTRY FSkipToElse(INT *Line,HWND hwndParent); extern BOOL APIENTRY FSkipToEnd(INT *Line,HWND hwndParent); extern ERC APIENTRY ErcEvaluateCompare(HWND, ECM, SZ, SZ, SZ);
/* Stack Element For Loop */ typedef struct _sefl { struct _sefl * pseflNext; UINT iStartLine; RGSZ rgszList; UINT iItemCur; SZ szDollarSav; SZ szPoundSav; } SEFL;
typedef SEFL * PSEFL; typedef PSEFL * PPSEFL;
extern PSEFL pseflHead;
extern PSEFL APIENTRY PseflAlloc(VOID); extern BOOL APIENTRY FFreePsefl(PSEFL); extern BOOL APIENTRY FSkipToEndOfLoop(INT *Line,HWND hwndParent); extern BOOL APIENTRY FInitForLoop(INT *Line,HWND hwndParent,SZ List); extern BOOL APIENTRY FContinueForLoop(INT *Line,HWND hwndParent);
extern SZ APIENTRY SzProcessSz(HWND, SZ);
extern BOOL fSilentSystem;
|