Ignore:
Timestamp:
Feb 28, 2003, 4:37:21 PM (22 years ago)
Author:
sandervl
Message:

Check for invalid data while measuring the CPU speed. DosTmrQueryTime isn't very reliable (on laptops)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/cpu.cpp

    r8463 r9880  
    1 /* $Id: cpu.cpp,v 1.13 2002-05-22 12:57:16 sandervl Exp $ */
     1/* $Id: cpu.cpp,v 1.14 2003-02-28 15:37:21 sandervl Exp $ */
    22/*
    33 * Odin win32 CPU apis
     
    158158                                        tmp1 = (double)time1.LowPart + (double)time1.HighPart*4.0*1024.0*1024.0;
    159159                                        millisec = tmp - tmp1;
     160
    160161                                        frequency= (double)freq.LowPart;
    161162                                        frequency= frequency / 1000.0;
     
    165166                                        tmp1 = (double)tsc1.LowPart + (double)tsc1.HighPart*4.0*1024.0*1024.0;
    166167                                        clockticks = tmp - tmp1;
    167 
    168                                         tmp = 1000 / millisec;
    169                                         clockticks = clockticks * tmp;  //ticks per second
    170                                         mhertz = clockticks / 1000000.0;
    171                                         mhz = (DWORD)mhertz;
     168                                        if(millisec > 0)
     169                                        {//make sure we have something valid here
     170                                                tmp = 1000 / millisec;
     171                                                clockticks = clockticks * tmp;  //ticks per second
     172                                                mhertz = clockticks / 1000000.0;
     173                                                mhz = (DWORD)mhertz;
     174                                        }
     175                                        else    mhz = 500;
    172176                                }
    173                                 else    mhz = 100;
     177                                else    mhz = 500;
    174178                                RegSetValueExA(xhkey,"~Mhz",0,REG_DWORD, (LPBYTE)&mhz, sizeof(DWORD));
    175179                        }
Note: See TracChangeset for help on using the changeset viewer.