/*++ Module Name: struct.h Abstract: Contains all the valid definition constants, structures used by client.c and testdrvr.c Author: Sanjeev Katariya Environment: User mode Revision History: Serial # Author Date Changes -------- ------ ---- ------- 1. SanjeevK 10/28/92 Original 2. RickTu 1/25/93 Changed for new system watchdog mess. 3. RajNath 2/??/93 --*/ // // DEFINES: General // //#define SRVTOCLIENT_MSLOT "\\\\.\\mailslot\\SRVTOCLNT" #define CONNECT_MSLOT "\\\\*\\mailslot\\CONNECT" #define SRVEND_PIPE_BASE "PIPE\\NODAL" #define SRVEND_PIPE_NAME "STRESS7" #define MAX_RETRY_COUNT 3 #define MAX_EMAILNAME_LENGTH 8 #define MAX_LOCATION_LENGTH 10 #define MAX_COMMENT_LENGTH 15 #define MAX_GENERAL_LENGTH 80 #define MAX_TESTS 256 #define MAX_TEST_IDS 64 #define SEND_PERIOD 10UL*60UL*1000UL //Interval 10 minutes at which Alive Message Sent //#define NUM_MACHINE_TYPES 2 //#define MACHINE_TYPE_X86 (TCHAR)0x1 //#define MACHINE_TYPE_MIPS (TCHAR)0x2 #define STRESS_ENV_VAR "STRESSROOT" //#define NUM_DEFAULT_SRVADMINS 4 //#define NUM_POPUP_SERVERS 4 //#define NUM_DEFAULT_SRVADMINS (sizeof(ppc_SrvAdmins)/sizeof(ppc_SrvAdmins[0])) //#define NUM_POPUP_SERVERS (sizeof(ppc_PopUpSrvrs)/sizeof(ppc_PopUpSrvrs[0])) // // DEFINES: Message Identifiers // #define MSG_REGISTER_INFORMATION (DWORD)0x1 #define MSG_REGISTER_ADD_INFORMATION (DWORD)0x2 #define MSG_CLIENT_ALIVE (DWORD)0x3 #define MSG_CLIENT_SHUTDOWN (DWORD)0x4 #define MSG_CLIENT_WATCHDOG (DWORD)0x5 #define MSG_ERROR_POPUP (DWORD)0x6 // // DEFINES: Popups (upper WORD bit fields) // #define VDM_WINDOWS_POPUP 0x10000000 #define VDM_MSDOS_POPUP 0x20000000 #define APP_POPUP 0x40000000 // // DEFINES: Special error codes // #define ERROR_SHARENAME_RETRIEVAL (DWORD)2000 // // DEFINES: Connection States // // This is the state transition diagram for the client // // Reg/Fail KeepAlive/Success // ----------- ---- // | Count:3 | | | // v | | v // ------ ------ Reg/Success ------ // | DISC |--->| CONN |------------>| REG | // ------ ------ ------ // ^ | // | | // -------------------------------- // KeepAlive/Fail Count:3 // #define STATE_DISCONNECTED (DWORD)0x0 #define STATE_CONNECTED (DWORD)0x1 #define STATE_REGISTERED (DWORD)0x2 // // TYPEDEFS: SERVER, CONNECTION_INFORMATION, REG_INFORMATION // REG_ADD_INFORMATION, CLIENT_ALIVE, CLIENT_SHUTDOWN, // DATA, INFORMATION, THREAD_KEEPALIVE_PARMS // //typedef TCHAR SERVER, *PSERVER; //typedef struct _STRESS_SHARE { // // TCHAR c_MachineType; // TCHAR pc_SrvShareName[NNLEN+MAX_COMPUTERNAME_LENGTH+6]; // //} STRESS_SHARE, *PSTRESS_SHARE; //typedef struct _CONNECTION_INFORMATION { // // TCHAR pc_ComputerName[MAX_COMPUTERNAME_LENGTH+1] ; // TCHAR pc_ServerName[MAX_COMPUTERNAME_LENGTH+1] ; // STRESS_SHARE pstruct_SrvShareName[NUM_MACHINE_TYPES] ; // //} CONNECTION_INFORMATION, *PCONNECTION_INFORMATION; typedef struct _TEST_FLAGS { DWORD ul_TestFl[2]; } TEST_FLAGS; typedef struct _INFO_FLAGS { TCHAR FreeChk; TCHAR UniMultiProc; WORD CsdVersion; WORD RCMajor; WORD RCMinor; } INFO_FLAGS; typedef union _STRESS_FLAGS { TEST_FLAGS TF; INFO_FLAGS IF; } STRESS_FLAGS; typedef struct _OLDCAIROBUILD { TCHAR CairoBld[16]; } OLDCAIROBUILD; typedef struct _FILESYSTEMINFO { TCHAR FileSystemName[12]; DWORD FileSystemFlags; } FILESYSTEMINFO; typedef union _FILESYSTEMUNION { OLDCAIROBUILD oldcairo; FILESYSTEMINFO fsi; } FILESYSTEMUNION; typedef struct _REG_INFORMATION { DWORD ul_PhysMem; DWORD ul_Version; DWORD ul_FreeDisk; STRESS_FLAGS Fl; //DWORD ul_TestFl[2]; // out of date DWORD ul_BuildVersionNumber; TCHAR pc_EmailName[MAX_EMAILNAME_LENGTH+1] ; TCHAR pc_MachineName[MAX_COMPUTERNAME_LENGTH+1]; TCHAR pc_Location[MAX_LOCATION_LENGTH+1] ; TCHAR pc_Debugger[MAX_COMPUTERNAME_LENGTH+1] ; TCHAR Filler; SYSTEMTIME st_StartTime; union { DWORD Cpu; struct { WORD CpuLevel; WORD CpuType; }; }; TCHAR Run_Type[128]; int OtherBuild; FILESYSTEMUNION fsu; WORD TestIds[MAX_TEST_IDS]; } REG_INFORMATION, *PREG_INFORMATION; // // Defines current registration packet "version" number. Need // to incremenent the low word by "1" every time a change is made // to the REG_INFORMATION structure // #define CURRENT_REG_VERSION 0xFFFF0003 typedef struct _REG_ADD_INFORMATION { WORD TestIds[MAX_TEST_IDS]; } REG_ADD_INFORMATION, *PREG_ADD_INFORMATION; typedef struct _CLIENT_ALIVE { DWORD ul_ClientSendCount; DWORD CpuUtil; DWORD DiskUtil; DWORD Interrupts; } CLIENT_ALIVE, *PCLIENT_ALIVE; typedef struct _CLIENT_SHUTDOWN { TCHAR pc_SmartMessage; } CLIENT_SHUTDOWN, *PCLIENT_SHUTDOWN; typedef struct { TCHAR Popup[1]; }ERROR_POPUP; typedef union _DATA { REG_INFORMATION RI ; REG_ADD_INFORMATION RAI; CLIENT_ALIVE CA ; CLIENT_SHUTDOWN CS ; } DATA, *PDATA; typedef struct _INFORMATION { DWORD Type; char Data[1]; } INFORMATION, *PINFORMATION; typedef struct _WATCHDOG { DWORD CsrssCommitedPages; DWORD PercentCpuUsage; DWORD InterruptsPerSec; DWORD ReadWritePerSec; } WATCHDOG, *PWATCHDOG; typedef struct _ERRORS { DWORD ErrCode; CHAR Server[100]; } ERRORS, *PERRORS; #define MAX_ERROR_ENTRIES 20 // // Structure for parameters passed to the client alive thread // typedef struct _THREAD_KEEPALIVE_PARMS { PHANDLE ppv_Handle ; DWORD ul_DelayTimer; DWORD ul_ConnectionState; REG_INFORMATION struct_RegInf; TCHAR pc_ServerName[MAX_COMPUTERNAME_LENGTH+1]; } THREAD_KEEPALIVE_PARMS, *PTHREAD_KEEPALIVE_PARMS; // // Exported functions: EstablishConnection(), SendInformation(), // ReceiveInformation(), CloseConnection() // //DWORD //EstablishConnection( // IN PSERVER lpsz_ServerName OPTIONAL, // OUT PHANDLE ppv_Handle, // OUT PCONNECTION_INFORMATION pstruct_ConnectionInformation // ); BOOL SendInformation( DWORD MsgType, PVOID Msg, DWORD MsgSize ); //DWORD //ReceiveInformation( // IN HANDLE pv_PipeHandle, // IN OUT PINFORMATION pstruct_Information // ); // // MACROS // //#define CloseConnection( Handle ) CloseHandle( Handle ) ? ERROR_SUCCESS : GetLastError() // // SOME ADDITIONAL STUFF FOR NEWCLIENT.C // #define MAX_SERVERS 10 #define MAXPIPENAME MAX_COMPUTERNAME_LENGTH+1+128 typedef struct { TCHAR RegSrvs[MAX_SERVERS][MAX_COMPUTERNAME_LENGTH+1]; DWORD NumRegSrvs; } SERVERLIST; // //Incase the .INI File has missing section on this.... // //static CHAR ppc_SrvAdmins[][MAX_COMPUTERNAME_LENGTH+1] = { "NTSTRESS", "LAPILE","DRAINO","RICKTUMIPS","RAJNATH" }; //static CHAR ppc_PopUpSrvrs[][MAX_COMPUTERNAME_LENGTH+1] = { "STRESS", "RICKTU", "A-LARSO", "RAJNATH" }; //static STRESS_SHARE pstruct_DefaultStressSrvrs[] = { { MACHINE_TYPE_X86, "\\\\PEANUT\\X86STRS" }, // { MACHINE_TYPE_MIPS, "\\\\PEANUT\\MIPSSTRS" } }; extern BOOL SendAdditionalInfo; extern REG_ADD_INFORMATION RAI; extern REG_INFORMATION RI; extern SERVERLIST ServerList; extern int ActiveServer; #define SAFECLOSEHANDLE(hX) {if (hX!=INVALID_HANDLE_VALUE) {CloseHandle(hX);hX=INVALID_HANDLE_VALUE;}}