Ignore:
Timestamp:
Jun 18, 2009, 11:53:26 AM (16 years ago)
Author:
ydario
Message:

Kernel32 updates.

File:
1 edited

Legend:

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

    r9647 r21302  
    1919#include <odinwrap.h>
    2020#include <os2sel.h>
     21#include <FastInfoBlocks.h>
    2122
    2223#include <os2win.h>
     
    9394
    9495    ret = O32_FileTimeToSystemTime(lpFileTime, lpSystemTime);
    95     dprintf(("time: %d-%d-%d %d:%d:%d", lpSystemTime->wDay, lpSystemTime->wMonth, lpSystemTime->wYear, lpSystemTime->wHour, lpSystemTime->wMinute, lpSystemTime->wSecond));
     96    dprintf(("time: %d-%d-%d %02d:%02d:%02d", lpSystemTime->wDay, lpSystemTime->wMonth, lpSystemTime->wYear, lpSystemTime->wHour, lpSystemTime->wMinute, lpSystemTime->wSecond));
    9697    return ret;
    9798}
     
    153154    }
    154155    O32_GetSystemTime(lpSystemTime);
     156    dprintf2(("time: %d-%d-%d %02d:%02d:%02d", lpSystemTime->wDay, lpSystemTime->wMonth, lpSystemTime->wYear, lpSystemTime->wHour, lpSystemTime->wMinute, lpSystemTime->wSecond));
    155157}
    156158//******************************************************************************
     
    245247        RegCloseKey(hkey);
    246248
    247         //TODO: we should return whether or we are in standard or daylight time
    248         return TIME_ZONE_ID_STANDARD;
     249        dprintf(("Bias         %x", lpTimeZone->Bias));
     250        dprintf(("StandardName %ls", lpTimeZone->StandardName));
     251        dprintf(("StandardBias %x", lpTimeZone->StandardBias));
     252        dprintf(("StandardDate %d-%d-%d-%d", lpTimeZone->StandardDate.wYear, lpTimeZone->StandardDate.wMonth, lpTimeZone->StandardDate.wDay, lpTimeZone->StandardDate.wDayOfWeek));
     253        dprintf(("DaylightName %ls", lpTimeZone->DaylightName));
     254        dprintf(("DaylightBias %x", lpTimeZone->DaylightBias));
     255        dprintf(("DaylightDate %d-%d-%d-%d\n", lpTimeZone->DaylightDate.wYear, lpTimeZone->DaylightDate.wMonth, lpTimeZone->DaylightDate.wDay, lpTimeZone->DaylightDate.wDayOfWeek));
     256
     257        //TODO: determine daylight or standard time
     258        return TIME_ZONE_ID_UNKNOWN;
    249259    }
    250260    else
     
    262272        lstrcpynAtoW(lpTimeZone->DaylightName, (LPSTR)tzone.DaylightName, len);
    263273        lpTimeZone->DaylightName[len] = 0;
     274
     275        dprintf(("Bias         %x", lpTimeZone->Bias));
     276        dprintf(("StandardName %ls", lpTimeZone->StandardName));
     277        dprintf(("StandardBias %x", lpTimeZone->StandardBias));
     278        dprintf(("StandardDate %d-%d-%d-%d", lpTimeZone->StandardDate.wYear, lpTimeZone->StandardDate.wMonth, lpTimeZone->StandardDate.wDay, lpTimeZone->StandardDate.wDayOfWeek));
     279        dprintf(("DaylightName %ls", lpTimeZone->DaylightName));
     280        dprintf(("DaylightBias %x", lpTimeZone->DaylightBias));
     281        dprintf(("DaylightDate %d-%d-%d-%d\n", lpTimeZone->DaylightDate.wYear, lpTimeZone->DaylightDate.wMonth, lpTimeZone->DaylightDate.wDay, lpTimeZone->DaylightDate.wDayOfWeek));
    264282        return ret;
    265283    }
     
    312330 * Author    : Patrick Haller [Mon, 1998/06/15 08:00]
    313331 *****************************************************************************/
    314 
    315332VOID WIN32API GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime)
    316333{
     334    /*
     335     *  Speculative time caching.
     336     *      We assume GetSystemTime is using DosGetDateTime.
     337     *      We assume DosGetDateTime uses the global info segment.
     338     *      We assume that SIS_MsCount is updated when the rest of the date/time
     339     *          members of the global info segment is updated.
     340     *
     341     *  Possible sideffects:
     342     *    - The code doens't take in account changes of timezone, and hence will
     343     *      be wrong until the next timer tick. This isn't a problem I think.
     344     *    -
     345     */
     346    #if 1
     347    static  FILETIME    LastFileTime;
     348    static  ULONG       LastMsCount = -1;
     349    if (fibGetMsCount() == LastMsCount) {
     350        *lpSystemTimeAsFileTime = LastFileTime;
     351    }
     352    else
     353    {
     354        SYSTEMTIME      st;
     355        ULONG           ulNewMsCount = fibGetMsCount();
     356        GetSystemTime(&st);
     357        SystemTimeToFileTime(&st, lpSystemTimeAsFileTime);
     358        LastFileTime = *lpSystemTimeAsFileTime;
     359        LastMsCount = ulNewMsCount;
     360    }
     361    dprintf2(("Time %08x%08x", lpSystemTimeAsFileTime->dwHighDateTime, lpSystemTimeAsFileTime->dwLowDateTime));
     362    #else
    317363    SYSTEMTIME st;
    318 
    319364    GetSystemTime(&st);
    320365    SystemTimeToFileTime(&st, lpSystemTimeAsFileTime);
    321 }
    322 //******************************************************************************
    323 //******************************************************************************
    324 
    325 
     366    dprintf2(("Time %08x%08x", lpSystemTimeAsFileTime->dwHighDateTime, lpSystemTimeAsFileTime->dwLowDateTime));
     367    #endif
     368}
     369//******************************************************************************
     370//******************************************************************************
     371
     372
Note: See TracChangeset for help on using the changeset viewer.