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.
|
|
/*
* Module Name: WSDATA.H * * Description: * * Working set tuner include file. Contains common structure * declarations and constant definitions. * * * This is an OS/2 2.x specific file * * IBM/Microsoft Confidential * * Copyright (c) IBM Corporation 1987, 1989 * Copyright (c) Microsoft Corporation 1987-1998 * * All Rights Reserved * * Modification History: * * 03/23/90 - created * 04/16/98 - QFE DerrickG (mdg): * - modified dtqo_s.dtqo_resv from "unsigned short" to "unsigned long" * to accommodate large symbol counts * */
/*
* Constant definitions. */
#define NUM_VAR_BITS (sizeof(ULONG) << 3)
#ifdef TMIFILEHACK
#define MAXLINE 80
#endif /* TMIFILEHACK */
/*
* Type definitions and structure declarations. */
typedef ULONG fxnbits_t;
struct dtqo_s { unsigned long dtqo_hMTE; /* MTE handle */ unsigned short dtqo_usID; /* Identifier */ unsigned long dtqo_resv; /* Reserved */ // mdg 98/4
unsigned long dtqo_cbPathname; /* Module pathname length */ unsigned long dtqo_clVar; /* Number of dyntrc variables */ };
typedef struct dtqo_s dtqo_t;
/*
* WSI file layout: * * _________________________________________ * | | * | wsihdr_s | * |_______________________________________| * |_______________________________________| * | sentinel 0 (dtgp_s) | <---------- * |=======================================| | * | snapshot 0 (dtgp_s) for module X | | S * |---------------------------------------| | n * | dynamic trace variables for X | | a * |---------------------------------------| | p * | snapshot 0 (dtgp_s) for module Y | | s * |---------------------------------------| | h * | dynamic trace variables for Y | | o * |---------------------------------------| | t * | etc. | | * |=======================================| | D * | sentinel 1 (dtgp_s) | | a * |=======================================| | t * | snapshot 1 (dtgp_s) for module X | | a * |---------------------------------------| | * | dynamic trace variables for X | | * |---------------------------------------| | * | snapshot 1 (dtgp_s) for module Y | | * |---------------------------------------| | * | dynamic trace variables for Y | | * |---------------------------------------| | * | etc. | | * |=======================================| | * | sentinel 2 (dtgp_s) | | * |=======================================| | * | etc. | | * |=======================================| | * | end sentinel (dtgp_s) | | * |_______________________________________| <---------- * |_______________________________________| * | | <---------- Q * | dtqo_s for module X | | u * |---------------------------------------| | e * | module X pathname string | | r * |=======================================| | y * | dtqo_s for module Y | | * |---------------------------------------| | I * | module Y pathname string | | n * |=======================================| | f * | etc. | <---------- o * |=======================================| * |_______________________________________| * */
/* WSI file header format */ struct wsihdr_s { CHAR wsihdr_chSignature[4]; // file signature
ULONG wsihdr_ulLevel; // format level
ULONG wsihdr_ulTimeStamp; // time stamp
ULONG wsihdr_ulOffGetvar; // offset to DT_GETVAR data
ULONG wsihdr_ulOffQuery; // offset to DT_QUERY data
ULONG wsihdr_cbFile; // size of file (in bytes)
ULONG wsihdr_ulSnaps; // number of snapshots
};
typedef struct wsihdr_s wsihdr_t;
/*
* WSP file layout: * * _________________________________________ * | | * | wsphdr_s | * |---------------------------------------| * | module pathname array | * |_______________________________________| * |_______________________________________| * | function #0 bitstring | * | (rounded to DWORD boundary) | * |=======================================| * | function #1 bitstring | * |=======================================| * | etc. | * |=======================================| * |_______________________________________| * */
/* WSP file header format */ struct wsphdr_s { CHAR wsphdr_chSignature[4]; // file signature
ULONG wsphdr_ulTimeStamp; // time stamp
dtqo_t wsphdr_dtqo; // query info
ULONG wsphdr_ulOffBits; // offset to first bitstring
ULONG wsphdr_ulSnaps; // number of snapshots
/* followed by module pathname char array, length specified in dtqo */ };
typedef struct wsphdr_s wsphdr_t;
/*
* TMI file layout: * * _________________________________________ * | | * | tmihdr_s | * |_______________________________________| * |_______________________________________| * | function #0 tmirec_s | * |---------------------------------------| * | function #0 name array | * |=======================================| * | function #1 tmirec_s | * |---------------------------------------| * | function #1 name array | * |=======================================| * | etc. | * |=======================================| * |_______________________________________| * */
/* TMI file header. */ typedef struct tmihdr_s { CHAR tmihdr_chSignature[4]; // "TMI\0"
USHORT tmihdr_usMajor; // Range 0x0001 to 0x00FF
USHORT tmihdr_cTmiRec; // Number of tmirec in file
CHAR tmihdr_chModName[256]; // Name of traced module
USHORT tmihdr_usID; // Module identifier
CHAR tmihdr_resv[30]; // Reserved
};
typedef struct tmihdr_s tmihdr_t;
/* Per-function information from TMI file */ struct tmirec_s { ULONG tmirec_ulFxnBit; // function's bit reference position
ULONG tmirec_usFxnAddrObj; // object portion of function address
ULONG tmirec_ulFxnAddrOff; // offset portion of function address
ULONG tmirec_cbFxn; // size of function (in bytes)
USHORT tmirec_cbFxnName; // size in bytes of function name
CHAR tmirec_FxnName[1]; // bytes of function name start here
};
typedef struct tmirec_s tmirec_t;
|