/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: February 21, 1992 9:45:14 pm PST */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: HostTimeUnixImpl, module: HostTimeUnixImpl */ /* switches: bcfhklnouw */ #include #include static char versionStamp[] = "@(#)mob_version [2194834731,3409745707] HostTimeUnixImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef struct {word f0, f1;} W2; typedef struct {word f0, f1, f2, f3;} W4; typedef W4 *W4Pt; typedef W2 *W2Pt; typedef word (*fPt)(); typedef struct {word f0, f1, f2;} W3; typedef W3 *W3Pt; #define SOURCE(p, l) /* source p, l */ #define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR_RaiseBoundsFault()) : (idx) ) static float fc7 = 1.0e-6; #define SGNCK(i) ((int) (word) (i) < 0 ? XR_RaiseArithmeticFault(): i ) static float fc12 = 1000000.0; static void NoName_Q540(); static void HostTimeUnixImpl_P0(); static void HostTimeFromExtendedGMT_P60(); static void ExtendedGMTFromHostTime_P120(); static void GetTime_P180(); static word TimeToMicroseconds_P240(); static void MicrosecondsToTime_P300(); static word TimeToSeconds_P360(); static void SecondsToTime_P420(); static void GetZoneAndDST_P480(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\202\322\205\053\300\313\074\227\053\100\164\000\000"}; static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\211\056\077\074\300\127\047\310\242\100\150\000\000"}; static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\273\264\166\314\300\142\321\237\137\100\150\000\000"}; static struct { word f0[4]; word f4; word f5; word f6; word f7; word f8; word f9; word f10; word f11; word f12; word f13; word f14; word f15; word f16; word f17; word f18; word f19; word f20; word f21[4]; } globalframe = { {0}, (word) GetZoneAndDST_P480, 0, (word) SecondsToTime_P420, 0, (word) TimeToSeconds_P360, 0, (word) MicrosecondsToTime_P300, 0, (word) TimeToMicroseconds_P240, 0, (word) GetTime_P180, 0, (word) ExtendedGMTFromHostTime_P120, 0, (word) HostTimeFromExtendedGMT_P60, 0, (word) HostTimeUnixImpl_P0, {0} }; static void NoName_Q540() { register ptr gf_c043 = (ptr) &globalframe; word var_c5916; (void) XR_DeclareGlobalFrame((word) "HostTimeUnixImpl", &globalframe, (word) XR_GetTypeIndexS((word) (&string1)), (word) ( ( (bPt) gf_c043)+80)/* var_c5596 */ ); var_c5916 = (word) XR_ImportInterface((word) "Real", (word) XR_GetTypeIndexS((word) (&string2)), 11); (* (( (ptr) gf_c043)+23)/* var_c5788 */ ) = var_c5916; (void) XR_ImportProcS(var_c5916, 67371521); (void) XR_ImportProcS(var_c5916, 67372033); var_c5916 = (word) XR_ImportInterface((word) "UnixSysCalls", (word) XR_GetTypeIndexS((word) (&string3)), 77); (* (( (ptr) gf_c043)+22)/* var_c5660 */ ) = var_c5916; (void) XR_ImportProcS(var_c5916, 67640066); var_c5916 = (word) XR_ExportInterface((word) "HostTime", (word) XR_GetTypeIndexS((word) (&string4)), 8); (* (( (ptr) gf_c043)+24)/* var_c5948 */ ) = var_c5916; (void) XR_ExportProcS(var_c5916, (word) (( (bPt) gf_c043)+64)/* var_c5532 */ , 135266305); (void) XR_ExportProcS(var_c5916, (word) (( (bPt) gf_c043)+72)/* var_c5564 */ , 268960001); (void) XR_ExportProcS(var_c5916, (word) (( (bPt) gf_c043)+56)/* var_c5500 */ , 268435968); (void) XR_ExportProcS(var_c5916, (word) (( (bPt) gf_c043)+48)/* var_c5468 */ , 68158209); (void) XR_ExportProcS(var_c5916, (word) (( (bPt) gf_c043)+40)/* var_c5436 */ , 268698625); (void) XR_ExportProcS(var_c5916, (word) (( (bPt) gf_c043)+32)/* var_c5404 */ , 68158721); (void) XR_ExportProcS(var_c5916, (word) (( (bPt) gf_c043)+24)/* var_c5372 */ , 268699137); (void) XR_ExportProcS(var_c5916, (word) (( (bPt) gf_c043)+16)/* var_c5340 */ , 201328384); } static void HostTimeUnixImpl_P0(formal_c015, formal_c014) word formal_c015; word formal_c014; { /* HostTimeUnixImpl: */ } static void HostTimeFromExtendedGMT_P60(formal_c018, egmt_v2996) word formal_c018; W2 egmt_v2996; { W4 time_v3040; /* HostTimeFromExtendedGMT: */ SOURCE(514, 163) SOURCE(514, 163) time_v3040.f0 = 0; time_v3040.f1 = 0; time_v3040.f2 = 0; time_v3040.f3 = 0; SOURCE(611, 45) time_v3040.f0 = (egmt_v2996.f0 - 63158400); SOURCE(658, 19) time_v3040.f1 = egmt_v2996.f1; /* removed tail goto */ (* (W4Pt) formal_c018 ) = time_v3040; return; } static void ExtendedGMTFromHostTime_P120(formal_c021, time_v3100) word formal_c021; W4 time_v3100; { W2 egmt_v3144; /* ExtendedGMTFromHostTime: */ SOURCE(683, 145) SOURCE(765, 42) egmt_v3144.f0 = (time_v3100.f0 + 63158400); SOURCE(809, 19) { word idx5; egmt_v3144.f1 = ( idx5 = (word) time_v3100.f1, BCK(idx5, 1000000) ); }; /* removed tail goto */ (* (W2Pt) formal_c021 ) = egmt_v3144; return; } static void GetTime_P180(formal_c025) word formal_c025; { register ptr gf_c5980 = (ptr) &globalframe; W4 time_v3204; W2 timeVal_v3708; /* GetTime: */ SOURCE(834, 208) SOURCE(834, 208) time_v3204.f0 = 0; time_v3204.f1 = 0; time_v3204.f2 = 0; time_v3204.f3 = 0; SOURCE(906, 35) timeVal_v3708.f0 = 0; timeVal_v3708.f1 = 0; SOURCE(943, 54) { word var_c5692; word pd6; pd6 = (* (( (ptr) (* (( (ptr) gf_c5980)+22)/* var_c5660 */ ))+31) ); var_c5692 = (word) ( *( (fPt) ((* (ptr) pd6 ))))((word) &timeVal_v3708, 0, pd6); }; SOURCE(999, 20) time_v3204.f0 = timeVal_v3708.f0; SOURCE(1021, 21) time_v3204.f1 = timeVal_v3708.f1; /* removed tail goto */ (* (W4Pt) formal_c025 ) = time_v3204; return; } static word TimeToMicroseconds_P240(time_v3264) W4 time_v3264; { word var_c3308; /* TimeToMicroseconds: */ SOURCE(1048, 116) SOURCE(1112, 52) return((time_v3264.f1 + (time_v3264.f0 * 1000000))); } static void MicrosecondsToTime_P300(formal_c030, usecs_v3368) word formal_c030; word usecs_v3368; { W4 time_v3412; /* MicrosecondsToTime: */ SOURCE(1170, 120) SOURCE(1170, 120) time_v3412.f0 = 0; time_v3412.f1 = 0; time_v3412.f2 = 0; time_v3412.f3 = 0; SOURCE(1241, 49) time_v3412.f0 = (usecs_v3368 / 1000000); time_v3412.f1 = (usecs_v3368 % 1000000); time_v3412.f2 = 0; time_v3412.f3 = 0; /* removed tail goto */ (* (W4Pt) formal_c030 ) = time_v3412; return; } static word TimeToSeconds_P360(time_v3472) W4 time_v3472; { word var_c3516; /* TimeToSeconds: */ SOURCE(1296, 90) SOURCE(1355, 31) { word x8; float tf9; return(( tf9 = (float)(unsigned)time_v3472.f0 + ((float)(unsigned)time_v3472.f1 * ( x8 = (* (ptr) &fc7 ), *(float*)&x8 )), *(word*)&tf9 )); }; } static void SecondsToTime_P420(formal_c038, secs_v3576) word formal_c038; word secs_v3576; { register ptr gf_c6012 = (ptr) &globalframe; W4 var_c3620; /* SecondsToTime: */ SOURCE(1392, 137) SOURCE(1451, 78) { W4 var_c5852; { W4 var_c5756; { word pd10; word idx11; pd10 = (* (( (ptr) (* (( (ptr) gf_c6012)+23)/* var_c5788 */ ))+8) ); var_c5756.f0 = ( idx11 = (word) ( *( (fPt) ((* (ptr) pd10 ))))(secs_v3576, pd10), SGNCK(idx11) ); }; { word var_c5820; { word x13; word x14; word pd15; pd15 = (* (( (ptr) (* (( (ptr) gf_c6012)+23)/* var_c5788 */ ))+8) ); *(float*)&var_c5820 = ( x13 = (* (ptr) &fc12 ), *(float*)&x13 ) * (( x14 = secs_v3576, *(float*)&x14 ) - (float)(int)(word) ( *( (fPt) ((* (ptr) pd15 ))))(secs_v3576, pd15)); }; { word pd16; word idx17; pd16 = (* (( (ptr) (* (( (ptr) gf_c6012)+23)/* var_c5788 */ ))+6) ); var_c5756.f1 = ( idx17 = (word) ( *( (fPt) ((* (ptr) pd16 ))))(var_c5820, pd16), SGNCK(idx17) ); }; }; var_c5756.f2 = 0; var_c5756.f3 = 0; var_c5852 = var_c5756; }; var_c3620 = var_c5852; /* removed tail goto */ }; (* (W4Pt) formal_c038 ) = var_c3620; return; } static void GetZoneAndDST_P480(formal_c042) word formal_c042; { register ptr gf_c6044 = (ptr) &globalframe; W3 tp_v3680; W2 unixTimeZone_v3752; /* GetZoneAndDST: */ SOURCE(1535, 336) SOURCE(1644, 60) SOURCE(1645, 59) { word var_c5884; word pd18; pd18 = (* (( (ptr) (* (( (ptr) gf_c6044)+22)/* var_c5660 */ ))+31) ); var_c5884 = (word) ( *( (fPt) ((* (ptr) pd18 ))))(0, (word) &unixTimeZone_v3752, pd18); }; SOURCE(1707, 34) { word idx19; tp_v3680.f0 = ( idx19 = (word) (unixTimeZone_v3752.f0 + 720), BCK(idx19, 1442) ); }; SOURCE(1743, 128) if (( (int)unixTimeZone_v3752.f1 != (int)0)) { SOURCE(1778, 16) tp_v3680.f1 = 98; SOURCE(1796, 15) tp_v3680.f2 = 305; } else { SOURCE(1822, 17) tp_v3680.f1 = 366; SOURCE(1858, 13) tp_v3680.f2 = 1; }; /* removed tail goto */ (* (W3Pt) formal_c042 ) = tp_v3680; return; } /* file: HostTimeUnixImpl, module: HostTimeUnixImpl, compiled at: February 21, 1992 9:45:14 pm PST */ extern void XR_install_HostTimeUnixImpl() { NoName_Q540(); } extern void XR_run_HostTimeUnixImpl() { XR_Start(&globalframe); }