/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: July 24, 1992 4:57:50 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: BootTimeImpl, module: BootTimeImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [206839039,1539428759] BootTimeImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define IOP2(op, x, y) ( (word) ((x) op (y)) )
static void NoName←Q168();
static void BootTimeImpl←P0();
static word Get←P60();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\014\124\034\377\300\133\301\321\227\100\164\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\212\174\364\337\300\361\376\000\156\100\150\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\257\264\171\134\300\142\321\237\137\100\150\000\000"};
static struct {
word f0[5]; word f5; word f6; word f7;
word f8; word f9[3];
} globalframe = {
{0}, 2147483647, (word) Get←P60, 0,
(word) BootTimeImpl←P0, {0}
};
static void NoName←Q168()
{
register ptr gf←c017 = (ptr) &globalframe;
word var←c3616;
(void) XR←DeclareGlobalFrame((word) "BootTimeImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c017)+32)
/* var←c3552 */ );
var←c3616 = (word) XR←ImportInterface((word) "BasicTime", (word) XR←GetTypeIndexS((word) (&string2)), 24);
(* (( (ptr) gf←c017)+10)/* var←c3584 */ ) = var←c3616;
(void) XR←ImportProcS(var←c3616, 67636482);
(void) XR←ImportProcS(var←c3616, 134220544);
var←c3616 = (word) XR←ExportInterface((word) "BootTime", (word) XR←GetTypeIndexS((word) (&string3)), 1);
(* (( (ptr) gf←c017)+11)/* var←c3648 */ ) = var←c3616;
(void) XR←ExportProcS(var←c3616, (word) (( (bPt) gf←c017)+24)/* var←c3520 */ , 67108864);
}
static void BootTimeImpl←P0(formal←c09, formal←c08)
word formal←c09;
word formal←c08;
{
/* BootTimeImpl: */
/* moved to installation proc */
}
static word Get←P60()
{
register ptr gf←c3680 = (ptr) &globalframe;
word var←c2660;
/* Get: */
SOURCE(182, 373)
SOURCE(227, 307)
if ((0 == (* (( (ptr) gf←c3680)+4)/* bootTimeComputed←v2468 */ ))) {
SOURCE(256, 278)
{
W2 enow←v2852;
word ticksSinceBoot←v2880;
word msSinceBoot←v2908;
word dms←v2936;
word ds←v2964;
SOURCE(258, 53)
{
word pd4;
pd4 = (* (( (ptr) (* (( (ptr) gf←c3680)+10)/* var←c3584 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd4 ))))((word) (&enow←v2852), pd4);
};
SOURCE(313, 42)
ticksSinceBoot←v2880 = (word) XR←TicksSinceBoot();
SOURCE(357, 47)
msSinceBoot←v2908 = (word) XR←TicksToMsec(ticksSinceBoot←v2880);
SOURCE(406, 50)
dms←v2936 = ((enow←v2852.f1 / 1000) - SGNCK(msSinceBoot←v2908));
SOURCE(458, 18)
ds←v2964 = IOP2( / , (int)dms←v2936, (int)1000);
SOURCE(478, 30)
{
word pd5;
pd5 = (* (( (ptr) (* (( (ptr) gf←c3680)+10)/* var←c3584 */ ))+17) );
(* (( (ptr) gf←c3680)+5)/* bootTime←v2496 */ ) = (word) ( *( (fPt) ((* (ptr) pd5 ))))(enow←v2852.f0, ds←v2964, pd5);
};
SOURCE(510, 24)
(* (( (ptr) gf←c3680)+4)/* bootTimeComputed←v2468 */ ) = 1;
};
};
SOURCE(537, 18)
return((* (( (ptr) gf←c3680)+5)/* bootTime←v2496 */ ));
}
/* file: BootTimeImpl, module: BootTimeImpl, compiled at: July 24, 1992 4:57:49 pm PDT */
extern void XR←install←BootTimeImpl() {
NoName←Q168();
}
extern void XR←run←BootTimeImpl() { XR←Start(&globalframe); }