Richard --
Thanks. Applied.
NOTE: I put the code in time.c in a function Parrot_floatval_time().
Some Win32 person please see if that can be made to work. Patches
to make it actually work are hereby solicited.
Regards,
-- Gregor
On Thu, 2001-11-01 at 16:48, Richard J Cox wrote:
> Current get fails to build on Win32[1]
>
> There are a host of problems (not the least being the object files not
> going where the linker is expecting them), then aside the first is the
> lack of a gettimeofday function. This is used in time_n.
>
> Here's my Win32 version:
>
> void gettimeofday(struct timeval* pTv, void *pDummy);
> {
> SYSTEMTIME sysTime;
> FILETIME fileTime; /* 100ns == 1 */
> LARGE_INTEGER i;
>
> GetSystemTime(&sysTime);
> SystemTimeToFileTime(&sysTime, &fileTime);
> /* Documented as the way to get a 64 bit from a FILETIME. */
> memcpy(&i, &fileTime, sizeof(LARGE_INTEGER));
>
> pTv->tv_sec = i.QuadPart / 10000000; /*10e7*/
> pTv->tv_usec = (i.QuadPart / 10) % 1000000; /*10e6*/
>
> }
>
> Given a suitable definition of struct timeval for the prototype (there is
> a definition in windows.h[2]) but making Windows.h a header across all the
> builds causes its own problems (with BOOL for a start).
>
> I'm not sure what a timeval of {0, 0} nominally represents, the above will
> give seconds since 1 Jan 1601, so a fiddle factor is likely to be needed.
>
> (I'm not sure what the best way to incorporate this is... for my test I
> added an extra .c with a special include, but I think some form of common
> OS abstraction layer is going to be needed rather than assuming one
> ABI/API and then emulating elsewhere.)
>
>
> [1] Windows 2000, Visual Studio 6 SP5 & MS Platform SDK (Feb 01 edition)
> [2] Well, more correctly in winsock2.h which windows.h includes.
> --
> [EMAIL PROTECTED]
>
>
--
_____________________________________________________________________
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy [EMAIL PROTECTED]
Focus Research, Inc. http://www.focusresearch.com/
8080 Beckett Center Drive #203 513-860-3570 vox
West Chester, OH 45069 513-860-3579 fax
\_____________________________________________________________________/