114 lines
3.3 KiB
C
114 lines
3.3 KiB
C
/*** WST.H - Public defines and structure definitions for WST tool.
|
|
*
|
|
*
|
|
* Title:
|
|
* Working Set Tuner Data Collection Tool include file used by WST.c
|
|
*
|
|
* Copyright (c) 1992, Microsoft Corporation.
|
|
* Reza Baghai.
|
|
*
|
|
*
|
|
* Modification History:
|
|
* 92.07.28 RezaB -- Created
|
|
*
|
|
*/
|
|
|
|
|
|
|
|
/* * * * * * * * C o m m o n M i s c . D e f i n e s * * * * * * * */
|
|
|
|
#define Naked _declspec (naked) // For asm functions
|
|
|
|
#define MEMSIZE 64*1024*1024 // 64 MB virtual memory for data -
|
|
// initially RESERVED - will be
|
|
// COMITTED as needed.
|
|
#define MAX_IMAGES 200 // Limit on num of modules in proc
|
|
#define PAGE_SIZE 4096 // 4K pages
|
|
#define PATCHFILESZ PAGE_SIZE // WST.INI file maximum size
|
|
#define COMMIT_SIZE 96*PAGE_SIZE // Mem chunck to be commited
|
|
#define TIMESEG 1000 // Default time seg size in milisecs
|
|
#define NUM_ITERATIONS 1000 // Number of iterations used to
|
|
// calculate overheads
|
|
#define UNKNOWN_SYM "_???"
|
|
#define UNKNOWN_ADDR 0xffffffff
|
|
#define MAX_SNAPS_DFLT 3200 // Default # snaps if not specified in WST.INI
|
|
#define MAX_SNAPS_ENTRY "MAXSNAPS=" // mdg 98/3
|
|
#define FILENAMELENGTH 256
|
|
#define WSTDLL "WST.DLL"
|
|
#define CRTDLL "CRTDLL.DLL"
|
|
#define KERNEL32 "KERNEL32.DLL"
|
|
#define PATCHEXELIST "[EXES]"
|
|
#define PATCHIMPORTLIST "[PATCH IMPORTS]"
|
|
#define TIMEINTERVALIST "[TIME INTERVAL]"
|
|
#define GLOBALSEMNAME "\\BaseNamedObjects\\WSTGlobalSem"
|
|
#define PATCHSECNAME "\\BaseNamedObjects\\WSTPatch"
|
|
#define PROFOBJSNAME "\\BaseNamedObjects\\WSTObjs"
|
|
#define WSTINIFILE "c:\\wst\\wst.ini"
|
|
#define WSTROOT "c:\\wst\\"
|
|
#define DONEEVENTNAME "\\BaseNamedObjects\\WSTDoneEvent"
|
|
#define DUMPEVENTNAME "\\BaseNamedObjects\\WSTDumpEvent"
|
|
#define CLEAREVENTNAME "\\BaseNamedObjects\\WSTClearEvent"
|
|
#define PAUSEEVENTNAME "\\BaseNamedObjects\\WSTPauseEvent"
|
|
#define SHAREDNAME "\\BaseNamedObjects\\WSTSHARED"
|
|
#define WSTUSAGE(x) ((ULONG_PTR)(x->Instrumentation[3]))
|
|
|
|
|
|
|
|
/* * * * * * * * * * G l o b a l D e c l a r a t i o n s * * * * * * * * */
|
|
|
|
typedef enum {
|
|
NOT_STARTED,
|
|
STARTED,
|
|
STOPPED,
|
|
} WSTSTATE;
|
|
|
|
typedef struct _wsp {
|
|
PSTR pszSymbol; // Pointer to Symbol name
|
|
ULONG_PTR ulFuncAddr; // Function address of symbol
|
|
ULONG ulCodeLength; // Length of this symbols code
|
|
ULONG ulBitString; // Bitstring for tuning.
|
|
} WSP;
|
|
typedef WSP * PWSP;
|
|
|
|
typedef struct _img {
|
|
PSTR pszName;
|
|
ULONG_PTR ulCodeStart;
|
|
ULONG_PTR ulCodeEnd;
|
|
PWSP pWsp;
|
|
int iSymCnt;
|
|
PULONG pulWsi;
|
|
PULONG pulWsp;
|
|
PULONG pulWsiNxt;
|
|
ULONG ulSetSymbols;
|
|
BOOL fDumpAll;
|
|
} IMG;
|
|
typedef IMG * PIMG;
|
|
|
|
|
|
typedef struct tagWSPhdr{
|
|
char chFileSignature[4];
|
|
ULONG ulTimeStamp;
|
|
ULONG ulApiCount;
|
|
USHORT usId;
|
|
ULONG ulSetSymbols;
|
|
ULONG ulModNameLen;
|
|
ULONG ulSegSize;
|
|
ULONG ulOffset;
|
|
ULONG ulSnaps;
|
|
}WSPHDR;
|
|
|
|
|
|
/* * * * E x t e r n a l F u n c t i o n D e c l a r a t i o n s * * * */
|
|
|
|
extern void GdiGetCsInfo (PDWORD, PDWORD, PDWORD);
|
|
extern void GdiResetCsInfo (void);
|
|
|
|
#ifdef i386
|
|
extern void SaveAllRegs (void);
|
|
extern void RestoreAllRegs (void);
|
|
#endif
|
|
|
|
#define STUB_SIGNATURE 0xfefe55aa // Mips Patch Stub signature
|
|
#define CAIROCRT "CAIROCRT.DLL"
|
|
|